gpt4 book ai didi

plugins - Gradle - 依赖替换在插件中不起作用

转载 作者:行者123 更新时间:2023-12-03 03:37:55 25 4
gpt4 key购买 nike

我在使用 Gradle 插件时遇到了一些问题。我正在尝试在插件中进行依赖替换,结果与我在 build.gradle 中进行替换时不同。文件。

我有依赖于 Project2 的 Project1。在 Project2 中,我有一个名为 AClass 的类我在 Project1 中使用的。

然后我想替换模块 org.example:Project2:1.0与项目:Project2 .所以,在 build.gradle ,我把下面的代码:

task updateDependency {
configurations.all {
resolutionStrategy.dependencySubstitution {
substitute module("org.example:Project2:1.0") with project(":Project2")
}
}
}

效果很好。但是,如果我尝试将以下代码放入插件中:
public class UpdateDependency extends DefaultTask {

@TaskAction
public void executeTask() {

project.configurations.all {
resolutionStrategy.dependencySubstitution {
substitute module("org.example:Project2:1.0") with project(":Project2")
}
}


}
}

并调用与代码关联的任务,它显示错误以下错误:
/home/me/Workspace/Project1/src/Main.java: error: cannot find symbol
new AClass()
^
symbol: class AClass
location: class Main
1 error
:compileJava FAILED

显然,由于某些原因,Project1 找不到 Project2。

我使用以下任务运行 Gradle(其中 updateDependency 是与依赖替换关联的任务的名称):
gradle clean updateDependency build

我怀疑这与 Gradle 应用代码的顺序有关,但我不知道如何修复它。

最佳答案

依赖项替换不能存在于任务操作中。它必须在之前触发。在执行任务时,依赖替换通常为时已晚。您的第一个片段具有误导性,因为它不是在任务中执行,而是在配置阶段执行,即使它是在任务配置中完成的。

关于plugins - Gradle - 依赖替换在插件中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32637401/

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