gpt4 book ai didi

在自定义任务中使用 'configurations.runtime.asPath' 时,Gradle war 忽略传递依赖关系

转载 作者:行者123 更新时间:2023-12-03 03:52:36 24 4
gpt4 key购买 nike

我面临着我无法解释的行为,使用 gradle 1.10 我有:

settings.gradle:

include('lib1', 'lib2', 'web')

build.gradle:
subprojects {
apply plugin: 'java'
}

project(':web') {
apply plugin: 'war'
dependencies {
compile project(':lib1')
}

task myTask(type: JavaExec, dependsOn: 'compileJava') {
main = "some.thirdparty.Class"
args "--searchPath", configurations.runtime.asPath
}

}

project(':lib1') {
dependencies {
compile project(':lib2')
}
}

project(':lib2') {
}

当我运行 gradle clean war我只有 lib1.jarwar/build/libs/web.war/WEB-INF/lib .

制作 WEB-INF/lib包含 lib1.jarlib2.jar我必须:
  • 移动 project('web') block 到文件末尾
  • 更新 configurations.runtime.asPathconfigurations.runtime (但我需要提供类路径作为路径,所以不是解决方案)

  • 我读了 build lifecycle描述,试图比较 --debug 输出,但这没有帮助。

    为什么会这样?将模块运行时类路径作为 JavaExec 任务中的路径提供什么是一个好的解决方案?

    最佳答案

    asPath解析配置,但只有在执行时而不是配置时(特别是在存在项目依赖项的情况下),解析才会正确工作。尝试包装 args符合 doFirst { ... } .

    关于在自定义任务中使用 'configurations.runtime.asPath' 时,Gradle war 忽略传递依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22523790/

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