web-dev-qa-db-ja.com

別のプロジェクトでgradle「ビルド」タスクを呼び出す

Gradleを使用して数日しか経っていない

私の現在のbuild.gradleスクリプトには、別のプロジェクトでビルドタスクを呼び出すタスクがあります(つまり、別の場所で別のbuild.gradleで定義されています)。

私の質問は、別のプロジェクトからタスクを呼び出すにはどうすればよいですか?

Tasks.build.execute()のようなことをしたいのですが、動作しないようです。私はこれを試しました:

commandLine "${rootDir}\\gradle", 'build', 'Eclipse'

少なくともマスタープロジェクトではなく、現在のプロジェクトのビルドとEclipseを実行しました。私の質問が明確であることを願っています

13
hamad32

まずこれを読んでください: 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プラグインを適用する必要があります。

20
CyberAleks

BuildFileパスなどを調整します。

task buildSomethingElse(type: GradleBuild) {
  buildFile = '../someOtherDirectory/build.gradle'
  tasks = ['build']
}

build.finalizedBy('buildsomethingElse')

参照:Gradleの編成ビルドロジックガイド、段落 59.5

次のように、antを呼び出すだけのantプロジェクトに1行のbuild.gradleファイルを追加することで、これを別のantプロジェクトにも適用できます。

ant.importBuild 'build.xml'
24
karl