描述
我已经分叉了另一个项目并将其上传到我自己的maven存储库。然而,依赖图也拉动了原始项目,这意味着我有两个版本的项目。编译在命令行中运行良好,但在eclipse中没有,因为它首先读取原始项目的jar,然后跳过我的分叉项目。
依赖关系图
+--- com.spiddekauga.gdx:gdx-spiddekauga (fork)
+--- com.badlogicgames.gdx:gdx-box2d
| \--- com.badlogicgames.gdx:gdx (original)
我尝试了什么
首先,我尝试使用com.badlogicgames.gdx:gdx
的原始名称,但项目是从原始maven存储库下载而不是我的,即使之前列出了我的maven存储库。
的build.gradle
allprojects {
...
repositories {
maven { url "http://maven.MY-DOMAIN.org/" }
mavenCentral()
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
maven { url "https://oss.sonatype.org/content/repositories/releases/" }
}
...
}
我要搜索的另一件事是让com.spiddekauga.gdx:gdx-spiddekauga
提供com.badlogicgames.gdx:gdx
以便不必下载,但我还没找到办法无论是在gradle还是maven都这样做。
问题
我如何解决以便只拉动我的分叉项目?通过a)重命名为com.badlogicgames.gdx:gdx
,以便它首先搜索我的maven存储库;或b)排除依赖com.badlogicgames.gdx:gdx
。
[次要问题] 是否可以设置maven项目提供另一个工件?例如。像这样:
的pom.xml
<project>
<groupId>com.spiddekauga.gdx</groupId>
<artifactId>gdx-spiddekauga</artifactId>
<provides>
<project>
<groupId>com.badlogicgames.gdx</groupId>
<artifactId>gdx</gdx>
</project>
</provides>
</project>
答案 0 :(得分:0)
分叉项目不会更改groupId
或gradle文件中的项目坐标(projectId
,version
和pom
)。您需要搜索并替换所有这些内容才能正常工作。
此外,您引用的依赖项在mavenCentral中可用,这是存储库列表中的第一个。