2011-07-20 169 views
32

我想用Gradle第一次。我想用一個Maven Java項目來編譯和創建一個jar文件。這是編譯和創建在建/ libs目錄的jar文件java插件中的Gradle-jar文件名

幹線 -XXXVERSION-SNAPSHOT.jar

我正在從這個Maven的Java項目的trunk目錄gradle這個build文件。

我想要得到的項目名稱(例如:PROJECT1)在jar文件名,像

PROJECT1 -XXXVERSION-SNAPSHOT.jar

在建/庫目錄。 請建議。

回答

31

默認項目名稱取自項目所在的目錄。不要明確更改jar的命名,而應該爲項目設置項目名稱。目前在build.gradle文件中這是不可能的。相反,您必須在根目錄中創建一個settings.gradle文件。這settings.gradle文件應該有這樣的一個襯墊包括:

rootProject.name = 'project1' 
+0

非常感謝解決方案。它爲我工作。還發現我們可以使用jar的「doFirst」,它也起作用。那麼實現這個目標的最好方法是什麼? – Chakri

+0

你對「我們可以使用doFirst for jar」有什麼意思? jar是一個「正常」的gradle任務,可以通過doLast和doFirst通過自定義操作關閉來增強它。 –

+0

使用這個片段也可以肯定,你的其他拉鍊,maven檔案等有正確的命名,因爲他們都取決於你的項目名稱 –

61

嘗試設置:

archivesBaseName = 'project1' 

jar.baseName = 'project1' 

以下是完整的解決方案:

trunk 
˪ build 
    ˪ libs 
    ˪ project1-1.0-SNAPSHOT.jar 
˪ build.gradle 

的build.gradle是:

apply plugin: 'java' 
apply plugin: 'maven' 

archivesBaseName = 'project1' 
version = '1.0-SNAPSHOT' 
group = 'example' 

它生成正確的ZIP,POM和JAR。

+0

感謝您的答覆。我嘗試了這兩個選擇,沒有運氣。 – Chakri

+0

只是爲了保持討論完整:第一個版本可以正常工作,並且還可以生成正確的zip文件,maven壓縮文件等等​​。我覺得它也更優雅。我將編輯我的答案以提供完整的腳本。 –

+0

是的,這也適用,但我沒有看到存儲庫中生成的POM和JAR。在聲明'repositories'後,我使用'uploadArchives'將它發佈到maven artifactory。 – Chakri

1

如果你有一些submobule,您可以在使用的build.gradle(爲JAR)

configurations { 
    jar.archiveName = 'submodule-jar.jar' 
}