2012-07-16 36 views
13

我構建的jar文件不使用Gradle Jar任務(我需要在我的任務中使用Ant任務)。如何配置uploadArchives以便能夠在指定的存儲庫中安裝JAR。Gradle:如何將自定義JAR文件上傳到Maven存儲庫

我試圖覆蓋默認神器與

uploadArchives { 
    repositories { 
     mavenDeployer { 
      // some Maven configuration 
     } 
    } 
} 

artifacts { 
    archives file: file('bin/result.jar') 
} 

但我發現了一個錯誤,有可能不是2級的文物與同類型和分類,這意味着這種配置增加了,而重寫的配置。

回答

20

你是對的,artifacts閉包只能給給定的配置添加工件(參見ArtifactHandler API)。

你有兩個選擇:

1)所描述的here添加的僞影濾波器(見章45.6.4.1 「每個項目中的多個文物」)。如果您使用此,嘗試宣告你的archives配置,如:

artifacts { 
    archives file: file('bin/result.jar'), name: 'result', type: 'jar' 
} 

這樣,你這樣的事情在你的僞影濾波器:

addFilter('result') {artifact, file -> 
    artifact.name == 'result' 
} 

2)上傳它作爲一個單獨的Maven模塊。如果result.jar是您上傳的唯一jar,這可能是一個好的解決方案。

configurations { 
    resultArchives 
} 

uploadResultArchives { 
    repositories { 
    mavenDeployer { 
     repository(url: "same/url/here") 
    } 
    } 
} 

artifacts{ 
    resultArchives file: file('bin/result.jar') 
} 

希望這有助於。

+0

感謝您的解決方案。後者在我的情況下是一種魅力。 – 2012-07-16 13:52:01

+0

我得到一個錯誤Gradle DSLmethod未找到'uploadResultArchive',我已經應用了插件maven。任何其他插件需要 – sver 2016-03-31 12:14:41

+1

@sver我想他的意思是_uploadArchives_ – zaxme 2017-05-15 09:54:55

相關問題