grails 2.5.x不会驱逐最旧版本的冲突库

时间:2018-02-21 21:21:15

标签: grails dependencies grails-2.0

BuildConfig.groovy

中使用grails 2.5.1
[...]
grails.project.dependency.resolver = "maven"
[...]

我有一个grails应用程序,包括2个自定义插件(托管在我们的nexus maven repo上):gw-mr:1.7.3-RELEASEgw-mr-security:1.7.4-RELEASE

这两个插件依赖于同一个库mr-client。但是gw-mr落后于gw-mr-security,并且一段时间没有重建,但其代码没有改变。与此同时,gw-mr-security已被提升,并使用了较新版本的公共库:mr-client。因此,如果我们看一下gw-mr的POM:

[...]
<dependency>
<groupId>irrelevant</groupId>
<artifactId>mr-client</artifactId>
<version>3.6.5-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
[...]

看着gw-mr-security的POM,我们看到了:

[...]
<dependency>
<groupId>irrelevant</groupId>
<artifactId>mr-client</artifactId>
<version>3.9.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
[...]

所以,确实gw-mr-security宣布mr-client的更高版本而不是gw-mr

当我在主机grails应用程序中包含这两个插件时,我可以看到一些非常奇怪的东西,当我运行grails dependency-report compile时:

[...]
+--- irrelevant:gw-mr:1.7.3-RELEASE
|    \--- irrelevant:mr-client:3.6.5-20170921.151252-2
+--- irrelevant:gw-mr-security:1.7.4-RELEASE
+--- irrelevant:gw-rest:1.7.8-RELEASE
[...]

所以,即使我的应用程序在其依赖项中声明了两个插件(BuildConfig.groovy):

[...]
compile "irrelevant:gw-mr:1.7.3-RELEASE"
compile "irrelevant:gw-mr-security:1.7.4-RELEASE"
[...]

grails仍然不会检查传递依赖关系并驱逐gw-mr3.6.5-SNAPSHOT)对gw-mr-security3.9.0-SNAPSHOT)中包含的更新版本的依赖关系。

当然,当我在主机应用程序中明确包含传递依赖时:

[...]
compile "irrelevant:mr-client:3.9.0-SNAPSHOT"
[...]

然后在我的战争中包装了正确的图书馆。

我的假设错了,grails驱逐了插件中包含的旧版本的传递依赖项吗?

感谢您的任何见解。

0 个答案:

没有答案