【发布时间】:2017-07-06 08:15:02
【问题描述】:
我有一个包含一堆子项目的项目。部分子项目为实用项目,部分项目为实际应用。
“应用程序”子项目都应该生成一个带有给定主类等的 jar 文件。为了解决这个问题,我在父 build.gradle 中添加了以下内容:
def configureApplication(project, mainClass) {
project.jar { ... }
}
从每个子项目的 build.gradle 中,我调用 configureApplication(project, "my.main.Class")
现在我想向所有应用程序子项目添加一个deploy 任务,以便我可以使用./gradlew deploy 部署所有应用程序。我试图通过将它放在父 build.gradle 中来模仿上述方法:
def configureDeploy(project) {
project {
task deploy {
println "Deploying!"
}
}
}
但我正在运行:
Could not find method call() for arguments [build_51pn93...closure3@334ebcaa] on project ':subproj'.
在过去的一个小时里,我尝试了大约一百种其他变体,但都没有成功。
问题:如何在每个子项目的build.gradle中不重复自己的部分子项目添加任务? (另外,在父 build.gradle 中使用方法是实现此目的的合理方法,还是有更 gradle 惯用的方法?)
【问题讨论】:
标签: gradle build.gradle multi-project