2013-07-12 29 views
0

在gradle這個項目,我有我的依賴關係設置爲:搖籃+ Artifactory的插件:嘗試發佈的解決依賴版本

dependencies { 
    compile group: 'com.our_organization.lib', name: 'Libraries', version: '5.+' 
    compile group: 'commons-io', name: 'commons-io', version: '2.4' 
} 

它使用圖書館的最新發布的版本,和完美的作品。

我再放開我建罐子通過對artifactory的:

artifactory { 
    contextUrl = artifactory_contextUrl 
    publish { 
     repository { 
      repoKey = publicationRepoKey 
      username = artifactory_user 
      password = artifactory_password 
      maven = true 
     } 
    } 
} 

其中大部分工作正常。

然而,當我去artifactory的,並得到了XML對於任何給定的版本,它的依賴被列爲

<dependencies> 
    <dependency org="com.our_organization.lib" name="Libraries" rev="5.+" /> 
    <dependency org="commons.io" name="commons.io" rev="2.4" /> 
</dependencies> 

,這意味着我不能我的版本鏈接到用於特定的庫版本它的構建。

我想要做的是賦予artifactory的依賴版本是構建中使用的特定解析版本。

我已經確定了幾件事情,都非常黑客,並且覺得必須有更好的方法。

這裏就是我想的/試過:

  1. 解決依賴自己,並在gradle這個依賴DSL設置特定的版本,所以搖籃它看起來像一個特定版本。使用常青藤來獲得證明的依賴關係的解決版本更難以應對。
  2. 在寫入之後但在將其發送到artifactory之前將xml篡改。這在很多層面上都很糟糕,並且在未來很容易出現問題。
  3. 使用獨立的gradle項目來確定解析後的版本,並將其寫入屬性文件,然後將其用於#1。這感覺像是過度殺傷。

總的來說,這似乎是一個簡單的因素,對於我而言,我找不到合適的解決方案。

回答