maven 相同的传递依赖但不同的版本

maven same transitive dependency but different version

我 运行 遇到以下两个依赖项的问题:

org.apache.felix » org.apache.felix.utils » 1.6.0

com.github.rotty3000 » phidias » 0.3.2

它们都对org.osgi.core有传递依赖,felix依赖4.1.0版本,phidias依赖5.0.0版本

我们的代码需要 5.0.0 版本才能正确编译

如果我将依赖项设置为:

<dependencies>
    <dependency>
        <groupId>org.apache.felix</groupId>
        <artifactId>org.apache.felix.utils</artifactId>
        <version>1.6.0</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>com.github.rotty3000</groupId>
        <artifactId>phidias</artifactId>
        <version>0.3.2</version>
        <scope>compile</scope>
    </dependency>
</dependencies>

maven自动获取4.1.0版本导致编译错误。如果我将 phidias 放在 felix 之上,它将获得 5.0.0 版本并可以正常编译。

我们想按字母顺序排列依赖项,这样 felix 就会排在最前面,有没有办法强制 osgi.core 解析 5.0.0 版本?

谢谢!

<exclude> 它来自于这两个依赖

pom.xml 中添加 org.osgi.core 版本 5.0.0 所需的依赖项,作为对所需版本

的显式依赖项

确保您使用的两个库在运行时与 5.0.0

兼容