我正在使用 Gradle 创建一个多项目构建文件。许多子项目需要通过传入某些参数来执行另一个子项目中存在的任务。如何在 Gradle 中实现这一点?
例如 :
root project
- project B : task X
- project A : task Y (param m, param n)
我需要 projectB.taskX 来调用 projectA.taskY(m,n)
更新:
子项目 A 有一个 JavaExec 类型的任务,它需要属性文件位置的输入参数
task generateCode(dependsOn:['classes','build'], type: JavaExec) {
main = 'jjrom.ObjectGen'
classpath = sourceSets.main.runtimeClasspath
args 'arg1', 'arg2', file(propertiesFilePath).path
}
现在,有 10 个子项目,所有这些都需要使用包含属性文件位置的参数调用此任务“generateCode”。此外,这个任务应该在构建每个子项目之前执行,这可以使用dependsOn来实现。
我的java项目代码组织:
trunk/
projA/src/java/../ObjectGen.java
projB/src/java/../properties.xml
projC/src/java/../properties.xml
projD/src/java/../properties.xml
....