我终于习惯了在我的项目中没有任何Used undeclared或Unused声明的依赖项。虽然很难跟踪依赖项中列出的未使用的声明的运行时/测试依赖项:analyze ...只需在pom.xml中向它们写入注释,否则管理它们以了解测试或运行时需要它们。 / p>
但解决版本冲突的方式对我来说仍然不清楚。关于传递依赖。
最近胜利策略如何运作?何时使用其他版本的版本?
如果使用版本号声明Used undeclared依赖项 - 它总是胜出
如果没有明确指定依赖版本,Maven无法解析任何版本 关于这种依赖性可能产生的冲突(很奇怪,但写成here)
如果您没有声明未声明的已使用依赖项,它会从最近的级别(最近获胜策略)中选择传递依赖项,如果冲突位于同一级别,则它会以某种方式决定版本A与版本B之间的关系......也许是第一个在处理权利时遇到的问题
答案 0 :(得分:2)
我认为依赖项解析的工作方式与您描述的完全相同。
如果您将<scope>
子标记用于<dependency>
引自maven官方网站:
答案 1 :(得分:1)
有一些依赖关系管理文档的链接:
http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html (“依赖范围”部分中的importend表)
在德国期刊中有一篇神篇文章描述了依赖的解决方法 - 这里是文章的bibtex参考:http://www.bibsonomy.org/bibtex/2ef10bb1bc1be7806bc3fba53417bbd5f/funthomas424242
在sonatype书中有一个关于依赖插件的部分: http://www.sonatype.com/books/mvnex-book/reference/optimizing-sect-dependency-plugin.html
我希望它有用。