是否可以申报同一依赖项的多个版本在 Maven 存储库中?
我同时需要这些依赖项:
<dependency>
<groupId>org.bukkit</groupId>
<artifactId>craftbukkit</artifactId>
<version>1.7.9-R0.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.bukkit</groupId>
<artifactId>craftbukkit</artifactId>
<version>1.7.2-R0.3</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.bukkit</groupId>
<artifactId>craftbukkit</artifactId>
<version>1.6.4-R2.0</version>
<scope>compile</scope>
</dependency>
因为它们每个都包含我关心的不同包:
org.bukkit.craftbukkit.v1_6_R3
org.bukkit.craftbukkit.v1_7_R1
org.bukkit.craftbukkit.v1_7_R3
如果我如第一个片段中所示声明依赖项,则只有最后一个才会生效。 Maven 有什么办法可以实现这一点吗?
@编辑也许有解决方法吗?
不会。Maven 只会解析模块中的一个依赖项,并忽略其他版本以避免任何冲突。即使在整个依赖层次结构中使用了同一依赖项的多个版本,Maven 也会使用“依赖关系树中最近的”战略。
可以使用不同的方式指定不同的依赖版本profiles。对于 Bukkit 的每个版本,都可以定义并激活一个配置文件。不过,如果您激活多个配置文件,则仅one将使用版本。
<profiles>
<profile>
<id>Bukkit_1_7_9_R02</id>
<activation>
...
</activation>
<dependencies>
<dependency>
<groupId>org.bukkit</groupId>
<artifactId>craftbukkit</artifactId>
<version>1.7.9-R0.2</version>
<scope>compile</scope>
</dependency>
</dependencies>
</profile>
<profile>
<id>Bukkit_1_7_2_R03</id>
<activation>
...
</activation>
<dependencies>
<dependency>
<groupId>org.bukkit</groupId>
<artifactId>craftbukkit</artifactId>
<version>1.7.2-R0.3</version>
<scope>compile</scope>
</dependency>
</dependencies>
</profile>
...
</profiles>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)