我使用gradle只有几天
在我当前的build.gradle脚本中,我有一个任务,我想在每次执行后调用另一个项目中的构建任务(即在其他地方的不同build.gradle中定义)
我的问题是如何从另一个项目调用任务?
我想我想做像tasks.build.execute()这样的事情,但它似乎没有用。我试过这个:
commandLine "${rootDir}\\gradle", 'build', 'eclipse'
它至少为我当前的项目执行了构建和eclipse而不是主项目。希望我的问题很清楚
答案 0 :(得分:19)
调整buildFile路径等:
task buildSomethingElse(type: GradleBuild) {
buildFile = '../someOtherDirectory/build.gradle'
tasks = ['build']
}
build.finalizedBy('buildsomethingElse')
参考:Gradle组织构建逻辑指南,59.5段。
您也可以将此应用于另一个ant项目,方法是在您的ant项目中添加一行build.gradle文件,该文件只调用ant,如下所示:
ant.importBuild 'build.xml'
答案 1 :(得分:17)
首先阅读: http://gradle.org/docs/current/userguide/multi_project_builds.html
如果您有多项目构建 您需要一个包含settings.gradle文件的根项目,其中包含:
include 'myproject1'
include 'myproject2'
你可以像这样从一个项目到另一个项目建立依赖关系:
myproject1 / gradle.build
task someOtherTask() << {
println 'Hello'
}
myproject2 / gradle.build
task sometask(dependsOn: ':myproject1:someOtherTask') << {
//do something here
}
或者如果您想要调用任务:
project(':myproject1').tasks.build.execute()
注意:您必须应用java插件才能使构建任务可用。