Tôi có một tập lệnh gradle phức tạp bao bọc một lượng chức năng xung quanh việc xây dựng và triển khai một số dự án netbeans cho một số môi trường.
Script hoạt động rất tốt, nhưng về bản chất, tất cả đều được cấu hình thông qua nửa tá bản đồ chứa thông tin về dự án và môi trường.
Tôi muốn tóm tắt các nhiệm vụ vào một tệp khác để tôi có thể đơn giản xác định bản đồ của mình trong một tệp xây dựng đơn giản và nhập các nhiệm vụ từ tệp khác. Bằng cách này, tôi có thể sử dụng các tác vụ cốt lõi tương tự cho một số dự án và định cấu hình các dự án đó bằng một tập bản đồ đơn giản.
Bất cứ ai có thể cho tôi biết làm thế nào tôi có thể nhập một tệp gradle vào một tệp khác, theo cách tương tự như nhiệm vụ của Ant? Cho đến nay, tôi đã dò tìm tài liệu của Gradle mà không có kết quả.
Thông tin bổ sung
Sau câu trả lời của Tom dưới đây, tôi nghĩ mình sẽ cố gắng và làm rõ chính xác ý mình muốn nói.
Về cơ bản, tôi có một tập lệnh gradle chạy một số dự án con. Tuy nhiên, các dự án con đều là dự án Netbeans và đi kèm với các tập lệnh xây dựng kiến của riêng chúng, vì vậy tôi có các nhiệm vụ trong gradle để gọi từng tập lệnh này.
Vấn đề của tôi là tôi có một số cấu hình ở đầu tệp, chẳng hạn như:
projects = [
[name:"MySubproject1", shortname: "sub1", env:"mainEnv", cvs_module="mod1"],
[name:"MySubproject2", shortname: "sub2", env:"altEnv", cvs_module="mod2"]
]
Sau đó, tôi tạo các tác vụ như:
projects.each({
task "checkout_$it.shortname" << {
// Code to for example check module out from cvs using config from 'it'.
}
})
Tôi có nhiều loại đoạn mã tạo nhiệm vụ và tất cả chúng đều chung chung - chúng hoàn toàn phụ thuộc vào cấu hình trong danh sách dự án.
Vì vậy, những gì tôi muốn là một cách để đặt nó trong một tập lệnh riêng biệt và nhập nó theo cách sau:
projects = [
[name:"MySubproject1", shortname: "sub1", env:"mainEnv", cvs_module="mod1"],
[name:"MySubproject2", shortname: "sub2", env:"altEnv", cvs_module="mod2"]
]
import("tasks.gradle") // This will import and run the script so that all tasks are generated for the projects given above.
Vì vậy, trong ví dụ này, task.gradle sẽ có tất cả mã tạo tác vụ chung và sẽ được chạy cho các dự án được xác định trong tệp build.gradle chính. Theo cách này, task.gradle là một tệp có thể được sử dụng bởi tất cả các dự án lớn bao gồm một số dự án con có tệp xây dựng kiến Netbeans.
apply from
ngay lập tức thực thi các tác vụ bên ngoài. Điều này có thể không thích hợp trong logic thực thi (tức là tôi muốn thực thi các tác vụ khi tôi muốn, không phải ngay lập tức).
apply from
ngay lập tức thực thi các tác vụ bên ngoài. Đừng để bị hiểu lầm. Các tác vụ bên ngoài được cấu hình, không được thực thi.