在另一个项目中调用 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'