【发布时间】:2018-11-29 11:08:52
【问题描述】:
我们的 warfile 不包含 jarfile 的预期 SNAPSHOT-Version,它包含通过另一个依赖项的较旧版本。
简化依赖:树
war-x.x.x-SNAPSHOT
\- jar1-x.x.x-SNAPSHOT
+- jar2-x.x.x
| +- problemjar-x.x.x
+- jar3-x.x.x-SNAPSHOT
jar3-xxx-SNAPSHOT 有一个依赖“problemjar-xxy-SNAPSHOT”(较新版本),但 war 项目构建(和依赖:树)包含来自“jar2-xxx”的“problemjar-xxx”。
目前,我们为“jar2-x.x.x”“排除”“problemjar-x.x.x”。
但很高兴知道这种行为的原因,恕我直言,排除只是一种解决方法。
注意事项:
- “jar3-x.x.x-SNAPSHOT”中的依赖项“problemjar-x.x.y-SNAPSHOT”未“提供”。
- Maven 版本为 3.2.5
- 上面简化的dependency:tree中的levels是正确的,所以旧版本的路径不会比新SNAPSHOT版本的路径短
编辑:项目结构
war 和 jar1 是一个父 pom 的子项,简化的依赖项:tree 来自 war 项目,其中 jar1 项目作为依赖项。其他是正常/外部依赖项,从 war 项目中可以看出,它也适用于 jar1。
【问题讨论】:
-
WAR 的那些依赖是在同一个构建(多模块)中构建还是来自其他构建?
-
对不起,注释错误,没有父子关系,war 和 jar1 在同一级别(multimodule 的子级)。其余的都是“正常”的外部依赖。
-
它们是否来自同一级别并不重要。重要的是如果正确引用它们是否在同一个反应器内(多模块构建),这仅在你做事时才会发生错了……
标签: maven maven-3 maven-dependency