2013-11-01 25 views
0

我有一个构建工具将版本绑定到SCM。我在本地构建时无法设置jar的版本。如果有人要改变我在本地工作的东西,它会推送版本号(我可以得到),但是当我发布到本地回购(常春藤)时,Gradle似乎更喜欢外部回购。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 
     } 
    } 
} 

不改变构建为我编辑的罐子。我怎样才能让gradle始终更喜欢本地回购?我有一种感觉,resolutionStrategy可能是最好的方式,但我不知道如何实现这一点。

编辑1

为了帮助澄清,Artifactory的有一个罐子(詹金斯出版)与1.2.3版本。我有一个本地构建的jar,保存到我的本地存储库中作为1.2.3。当我建立一个项目时,我的仓库关闭中有两个仓库(我的本地仓库),Gradle似乎从Artifactory中抽取了一个仓库。

编辑2

相关定义

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

回答

2

我真的不明白你在说什么,但搜索摇篮在其声明的顺序存储库,并挑选一个它找到的第一个匹配模块(至少与固定版本一样长)。

+0

增加了更多细节。我没有使用固定版本。它使用'compile'组:package:1.2。+''。这是问题吗? – Ethan

+0

如果两个回购都具有相同的最高版本,我希望它从早先宣布的回购中选择一个,但我并不十分确定。没有其他的方式来影响秩序。区分版本可能会更好,例如通过给本地版本添加时间戳和/或给它一个不同的状态(例如集成与释放)。 –

+0

好的。我会去改变ant构建文件。希望我们很快会更新到所有地方。谢谢(你的)信息。 – Ethan