我有一个构建工具,它将版本绑定到SCM。我在本地构建jar时无法设置jar的版本。如果有人要改变我在本地工作的东西,它会推送版本号(我可以得到),但是当我发布到我的本地仓库(Ivy)时,Gradle似乎更喜欢外部回购。
的build.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有一个jar(由jenkins出版),版本为1.2.3。我有一个我在本地构建的jar,它以1.2.3的形式保存到我的本地存储库中。当我在我的存储库闭包中构建一个具有两个存储库的项目时(我的本地一个在顶部),Gradle似乎从Artifactory中提取了一个。
修改2
依赖关系定义
dependencies {
compile ('company:project:1.2.+')
}
答案 0 :(得分:2)
我真的不明白你在说什么,但Gradle会按照声明的顺序搜索存储库,并选择它找到的第一个匹配模块(至少只要使用固定版本)。