我有一个项目有一些相同但具有不同版本的依赖项。示例:
是否有配置允许我强制maven始终获得冲突的更高版本的依赖项?
答案 0 :(得分:3)
强制maven始终获得更高版本
你不想这样做。可能存在依赖于具有与较新版本不同的API的旧版本的转发依赖性。
您希望从源头解决您的依赖性问题。找出需要较旧依赖性的原因以及原因。看看你能做些什么来解决冲突。
如果API未更改,您可以明确声明dependecies并排除旧的transitative,在这里我们从xerces中排除xml-apis:
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.11.0</version>
<scope>compile</scope>
<exclusions>
<exclusion>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
</exclusion>
</exclusions>
</dependency>
使用上述逻辑,您可以声明库所需的版本。但是,由于库版本之间的api更改,请注意不要以非编译代码结束。
答案 1 :(得分:0)
http://maven.apache.org/enforcer/enforcer-rules/requireUpperBoundDeps.html强制您使用和/或指定所有依赖项的最新版本。所以它不是自动获取,但它符合您的要求。