0

我有一个将版本绑定到 SCM 的构建工具。我在本地构建时无法设置 jar 的版本。如果有人要更改我在本地工作的内容,它将推送版本号(我可以获得),但是当我发布到我的本地存储库(Ivy)时,Gradle 似乎更喜欢外部存储库。

构建.gradle

repositories {
    mavenCentral()

    ivy {
        url "${System.properties['user.home']}/.ivy2/local/"
        layout "pattern", {
            artifact "[organization]/[module]/[revision]/[artifact](-[classifier]).[ext]"
            ivy "[organization]/[module]/[revision]/ivy.xml"
        }
    }

    ivy {
        url "https://repo/"
        layout "pattern", {
            artifact myPattern
            ivy myIvyPattern
        }
    }
}

无需更改我正在编辑的 jar 的构建。我怎样才能让 gradle 总是更喜欢本地仓库?我有一种感觉,这resolutionStrategy可能是最好的方法,但我不知道如何做到这一点。

编辑 1

为了帮助澄清,Artifactory 有一个版本为 1.2.3 的 jar(由 jenkins 发布)。我有一个我在本地构建的 jar,它作为 1.2.3 保存到我的本地存储库中。当我在我的存储库关闭中构建一个具有两个存储库的项目时(我的本地存储库在顶部),Gradle 似乎从 Artifactory 中提取了一个。

编辑 2

依赖定义

dependencies {
    compile ('company:project:1.2.+')
}
4

1 回答 1

2

我不太明白你在说什么,但 Gradle 会按照声明的顺序搜索存储库,并选择它找到的第一个匹配模块(至少只要使用固定版本)。

于 2013-11-01T22:01:01.563 回答