gpt4 book ai didi

gradle - 执行顺序问题

转载 作者:行者123 更新时间:2023-12-03 04:28:09 26 4
gpt4 key购买 nike

我有一个看起来像这样的项目。

root
build.gradle
settings.gradle
project1
build.gradle

project2
build.gradle

project3
build.gradle

project4
build.gradle

settings.gradle 看起来像这样。
include ':project1', ':project2', ':project3', ':project4'

build.gradle(从根目录)
apply plugin: 'java'
apply plugin: 'eclipse'

repositories {
mavenCentral()
}
dependencies {
compile project(':project1')
compile project(':project2')
compile project(':project3')
compile project(':project4')
}

所以基本上,我希望在 project2、3、4 之前先构建“project1”,因为它需要下载我们的内部依赖项(jar 和一些模式文件),以便 project2、3 和 4 能够从模式中提取工件文件(来自项目 1)。

但是当我运行它时,我看到在 project1 运行之前首先打印了 project2 和 3 的标准输出。

特别是 project2 包含许多运行此类参数的任务(类型: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"

其中一项任务如下所示。我在 project2 中有几个看起来像这样的任务。所以 project1 必须在 project2 和 project3 运行之前完全构建。

来自 project2 的 build.gradle
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 build”时,我首先看到了 project2 的打印输出。

我的布局有问题吗?

我的团队正在从 Ant 迁移到 Gradle,但 gradle 似乎与 Ant 执行有点不同。也许我对gradle有点误解。

最佳答案

好吧,对于根项目,没有必要将子模块指定为依赖项。

如果您的模块依赖于另一个模块,您应该清楚地定义这种依赖关系。

// project2/build.gradle
dependencies {
compile project(':project1')
}

关于gradle - 执行顺序问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44421895/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com