2013-11-01 63 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