为什么 Gradle 5 (5.6.3) 在组件解析时做出了意想不到的决定?
Why Gradle 5 (5.6.3) made an unexpected decision during component resolution?
我有一个非常大的多项目 java 构建。更新到Gradle 5(4.10.3->5.6.3)后,最可怕的事情之一就是在依赖解析过程中意外失败:
...
dependencies {
// I know about the deprecation of 'compile', with 'implementation' I have the same problems
compile project(":Monitor")
compile project(":WFPlugins-Server")
compile project(":web-spring")
compile project(":Security")
compile project(":Client")
}
...
对我来说很清楚,它应该是一个项目依赖项。但我收到:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':SpringWFS:compileJava'.
> Could not resolve all files for configuration ':SpringWFS:compileClasspath'.
> Could not find com.company:WFPlugins-Server:1.12.
Required by:
project :SpringWFS
所以 gradle 正试图将其解决为 ExternalModuleDependency [根据 gradle] 而不是 DefaultProjectDependency 并且构建如预期的那样失败了
有人解决这个问题吗?
备注:
- 请不要提出复合构建(目前不可能,但我正在努力)
- 更改构建系统(我们有一个非常大的项目):)
Gradle 将项目依赖替换为模块依赖的唯一原因是:
- 如果定义了替换规则。看看你有没有定义。
- 如果您在构建的其他地方将
WFPlugins-Server
作为二进制依赖项引用,并且它显示为 SpringWFS
依赖关系图的一部分, 和 它具有比项目更高的版本。
在最后一种情况下,您可以调整解析策略 to prefer project over modules。
我有一个非常大的多项目 java 构建。更新到Gradle 5(4.10.3->5.6.3)后,最可怕的事情之一就是在依赖解析过程中意外失败:
...
dependencies {
// I know about the deprecation of 'compile', with 'implementation' I have the same problems
compile project(":Monitor")
compile project(":WFPlugins-Server")
compile project(":web-spring")
compile project(":Security")
compile project(":Client")
}
...
对我来说很清楚,它应该是一个项目依赖项。但我收到:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':SpringWFS:compileJava'.
> Could not resolve all files for configuration ':SpringWFS:compileClasspath'.
> Could not find com.company:WFPlugins-Server:1.12.
Required by:
project :SpringWFS
所以 gradle 正试图将其解决为 ExternalModuleDependency [根据 gradle] 而不是 DefaultProjectDependency 并且构建如预期的那样失败了
有人解决这个问题吗?
备注:
- 请不要提出复合构建(目前不可能,但我正在努力)
- 更改构建系统(我们有一个非常大的项目):)
Gradle 将项目依赖替换为模块依赖的唯一原因是:
- 如果定义了替换规则。看看你有没有定义。
- 如果您在构建的其他地方将
WFPlugins-Server
作为二进制依赖项引用,并且它显示为SpringWFS
依赖关系图的一部分, 和 它具有比项目更高的版本。
在最后一种情况下,您可以调整解析策略 to prefer project over modules。