在另一个项目中调用 gradle "build" 任务
calling gradle "build" task in another project
我才开始使用 gradle
在我当前的 build.gradle 脚本中,我有一个任务,我想在每次完成后调用另一个项目中的构建任务(即在不同的 build.gradle 其他地方定义)执行
我的问题是如何调用另一个项目的任务?
我想我想做类似 tasks.build.execute() 的事情,但它似乎不起作用。我试过这个:
commandLine "${rootDir}\gradle", 'build', 'eclipse'
它至少为我当前的项目执行了构建和 eclipse,而不是主项目。希望我的问题很清楚
首先阅读这篇文章:
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 插件才能使构建任务可用。
调整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'
我才开始使用 gradle
在我当前的 build.gradle 脚本中,我有一个任务,我想在每次完成后调用另一个项目中的构建任务(即在不同的 build.gradle 其他地方定义)执行
我的问题是如何调用另一个项目的任务?
我想我想做类似 tasks.build.execute() 的事情,但它似乎不起作用。我试过这个:
commandLine "${rootDir}\gradle", 'build', 'eclipse'
它至少为我当前的项目执行了构建和 eclipse,而不是主项目。希望我的问题很清楚
首先阅读这篇文章: 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 插件才能使构建任务可用。
调整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'