我有一个存储在repo.maven.apache.org中的fork工件,它具有相同的组,工件ID和版本。我的fork存储在my.repo.hostname。
中如何强制Maven使用我的存储库中的工件,而不是来自Maven Central?
答案 0 :(得分:3)
分叉原始工件时,应使用classifiers进行区分。
所以,如果原始工件是:
<dependency>
<groupId>com.sample</groupId>
<artifactId>library</artifactId>
<version>1.0</version>
</dependency>
你可以把你的叉子作为:
<dependency>
<groupId>com.sample</groupId>
<artifactId>library</artifactId>
<version>1.0</version>
<classifier>myfork</classifier>
</dependency>
这种方法的优点:
对于分类器名称(它是一个自由字符串),我经常发现提供其他信息很有用:
在这种情况下使用分类器它也是Maven推荐的方法,来自official documentation:
分类器允许区分从同一POM构建但内容不同的工件。它是一些可选的任意字符串 - 如果存在 - 将附加到版本号之后的工件名称。
因此,不会出现存储库订单或任何其他类型的问题,您的构建将获得清晰度,可重复性和可维护性。希望它可能有所帮助。