Không hoàn toàn chắc chắn bạn thuộc loại nào sau đây, nhưng chúng phải bao gồm các cơ sở của bạn.
1. Gọi nhiệm vụ trực tiếp
Bạn chỉ cần có thể gọi
gradle :other/projC:hello :other/projD:hello
Tôi đã thử nghiệm này với:
# Root/build.gradle
allprojects {
task hello << { task -> println "$task.project.name" }
}
và
# Root/settings.gradle
include 'projA'
include 'projB'
include 'other/projC'
include 'other/projD'
2. Chỉ tạo nhiệm vụ trong các dự án phụ
Hoặc bạn chỉ muốn tác vụ được tạo trên các dự án/* khác?
Nếu sau này, sau đó các công việc sau:
# Root/build.gradle
allprojects {
if (project.name.startsWith("other/")) {
task hello << { task -> println "$task.project.name" }
}
}
và sau đó có thể được gọi với:
$ gradle hello
:other/projC:hello
other/projC
:other/projD:hello
other/projD
3. Tạo một nhiệm vụ chạy nhiệm vụ trong các tiểu dự án chỉ
Phiên bản này khớp với việc đọc câu hỏi của bạn có nghĩa là đã có một nhiệm vụ trong các tiểu dự án (buildJar) và tạo một tác vụ trong gốc mà sẽ chỉ gọi tiểu dự án khác/*: buildJar
allprojects {
task buildJar << { task -> println "$task.project.name" }
if (project.name.startsWith("other/")) {
task runBuildJar(dependsOn: buildJar) {}
}
}
Điều này tạo ra một nhiệm vụ "buildJar" trên tất cả các dự án, và "runBuildJar" trên/* các dự án khác mà thôi, vì vậy bạn có thể gọi:
$ gradle runBuildJar
:other/projC:buildJar
other/projC
:other/projC:runBuildJar
:other/projD:buildJar
other/projD
:other/projD:runBuildJar
câu hỏi của bạn có thể được đọc nhiều cách khác nhau, hy vọng điều này bao gồm tất cả :)
Cảm ơn cho câu trả lời. Không có tùy chọn nào phù hợp với nhu cầu của tôi: 1. Chúng tôi cần biết danh sách tất cả các tiểu dự án. 2 + 3. Xây dựng kịch bản cần phải được sửa đổi. Cuối cùng, tôi tìm thấy một cách khác để đạt được điều này và thêm nó như là một câu trả lời mới. – Marwin
@Marwin: Câu trả lời của bạn ở đâu? Sẽ được quan tâm. – frhd
@frhd Xem câu trả lời bên dưới của tôi 'gradle -p hello khác ' –