私はこのようなプロジェクトを持っています。gradle - 実行命令発行
root
build.gradle
settings.gradle
project1
build.gradle
project2
build.gradle
project3
build.gradle
project4
build.gradle
settings.gradleはこのようになります。それが私たちの内部の依存性(jarファイルをダウンロードする必要があるため、 'Project1の'
apply plugin: 'java'
apply plugin: 'eclipse'
repositories {
mavenCentral()
}
dependencies {
compile project(':project1')
compile project(':project2')
compile project(':project3')
compile project(':project4')
}
だから基本的に、私が欲しい(ルートから)
include ':project1', ':project2', ':project3', ':project4'
build.gradleは、最初のProject2、3、4の前に建てられますいくつかのスキーマファイル)を使用して、project2,3および4が(project1からの)スキーマファイルから成果物を抽出できるようにします。
私はそれを実行すると、私はproject2の標準出力を見て、3が最初に印刷されてからproject1が実行されます。
特にproject2には、このタイプの引数を実行する多くのタスク(type:JavaExec)が含まれています。
main = 'org.apache.xmlbeans.impl.tool.SchemaCompiler'
classpath "${BUILDROOT}/project1/${COMMON_DENEPDENCY_FILE}"
args "-src", "${projectDir}/src/main/java", "-d", "build/generated", "-srconly", "${projectDir}/xml/schema/example1.xsd", "${projectDir}/xml/schema/example1.xsdconfig"
タスクの1つは次のようになります。私はproject2のようないくつかのタスクを持っています。したがって、project1とproject2を実行する前に、project1を完全に構築する必要があります。
task xmlbeansExample2(dependsOn: xmlbeansExample1, type: JavaExec) {
println "Example2 is running"
main = 'org.apache.xmlbeans.impl.tool.SchemaCompiler'
classpath "${BUILDROOT}/common/${COMMON_DENEPDENCY_FILE}"
args "-src", "${projectDir}/src/main/java", "-d", "build/generated", "-srconly", "${projectDir}/xml/schema/example2.xsd", "${projectDir}/xml/schema/example2.xsdconfig"
println "Example2 is done"
}
task handleSchema(dependsOn: ['xmlbeansExample1', 'xmlbeansExample2'])
build.dependsOn handleSchema, jar
私はルートまたはのProject2から 'Gradleのビルド' を実行するのProject2
からbuild.gradleは、私が最初のProject2からのプリントアウトを参照してください。
レイアウトに問題はありますか?
私のチームはAntからGradleに移行していますが、gradleはAntの実行と少し違っているようです。たぶん、私はグラデルについてほとんど誤解されていません。