Gradle / Maven项目fork提供原始工件(仅下载fork)

时间:2015-03-03 13:25:02

标签: maven gradle

描述

我已经分叉了另一个项目并将其上传到我自己的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都这样做。

问题

  1. 我如何解决以便只拉动我的分叉项目?通过a)重命名为com.badlogicgames.gdx:gdx,以便它首先搜索我的maven存储库;或b)排除依赖com.badlogicgames.gdx:gdx

  2. [次要问题] 是否可以设置maven项目提供另一个工件?例如。像这样:

  3. 的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>
    

1 个答案:

答案 0 :(得分:0)

分叉项目不会更改groupId或gradle文件中的项目坐标(projectIdversionpom)。您需要搜索并替换所有这些内容才能正常工作。

此外,您引用的依赖项在mavenCentral中可用,这是存储库列表中的第一个。