我有一个将版本绑定(bind)到SCM的构建工具。我在本地构建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始终喜欢本地回购协议(protocol)?我觉得
resolutionStrategy
可能是最好的方法,但是我不知道该如何完成。编辑1
为了说明清楚,Artifactory有一个jar(由jenkins发布),版本为1.2.3。我有一个在本地构建的jar,它以1.2.3的形式保存到本地存储库中。当我建立一个在我的存储库关闭中同时包含两个存储库的项目时(我的本地存储库位于顶部),Gradle似乎从Artifactory引入了一个。
编辑2
依赖定义
dependencies {
compile ('company:project:1.2.+')
}
最佳答案
我真的不太明白您在说什么,但是Gradle会按照声明的顺序搜索存储库,并选择它找到的第一个匹配模块(至少使用固定版本时)。
关于gradle - Gradle首选重复条目上的存储库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19736055/