2011-07-20 29 views
32

Próbuję z Gradle po raz pierwszy. Próbuję z projektem maven Java, aby skompilować i utworzyć plik JAR. Jest kompilacji i tworzenia pliku jar w katalogu build/libs jakGradle - nazwa pliku JAR w java plugin

bagażniku -XXXVERSION-SNAPSHOT.jar

Używam Gradle plik kompilacji z katalogu pnia tego projektu java maven.

Chcę uzyskać nazwę projektu (Ex: project1) w nazwie pliku jar, coś jak

projektu1 -XXXVERSION-SNAPSHOT.jar

w build/libs informator. Proszę sugerować.

Odpowiedz

31

Domyślna nazwa projektu pochodzi z katalogu, w którym zapisany jest projekt. Zamiast zmieniać nazwy jar jawnie powinieneś ustawić nazwę projektu poprawnie dla swojej kompilacji. W tej chwili nie jest to możliwe w pliku build.gradle. Zamiast tego musisz utworzyć plik settings.gradle w swoim katalogu głównym. Ten plik settings.gradle powinien mieć ten jeden liner w zestawie:

rootProject.name = 'project1' 
+0

Wielkie dzięki za rozwiązanie. To zadziałało dla mnie. Odkryliśmy również, że możemy użyć "doFirst" dla słoika i to też zadziałało. Jaki jest najlepszy sposób, aby to osiągnąć. – Chakri

+0

co masz na myśli, mówiąc "możemy użyć doFirst for jar"? słoik to "normalne" zadanie gradowania, które można rozszerzyć o niestandardowe zamknięcia akcji za pomocą poleceń doLast i doFirst. –

+0

za pomocą tego fragmentu daje również pewność, że inne zamki, archiwa maven itp. Mają poprawne nazwy, ponieważ wszystkie one zależą od nazwy twojego projektu. –

61

ustawienie Spróbuj:

archivesBaseName = 'project1' 

lub

jar.baseName = 'project1' 

Oto pełne rozwiązanie:

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

build.gradle jest:

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

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

Tworzy prawidłowe pliki ZIP, POM i pliki JAR.

+0

Dzięki za odpowiedź. Próbowałem tych dwóch opcji, bez powodzenia. – Chakri

+0

Tylko po to, aby zakończyć dyskusję: pierwsza wersja działa, a także tworzy poprawne zamki, maven archiwa i tak dalej. Uważam to za bardziej eleganckie. Będę edytować moją odpowiedź, aby zapewnić pełny skrypt. –

+0

Tak, to też działa, ale nie widzę POM i JAR wygenerowanych w repozytorium. Używam "uploadArchives", aby opublikować go do maven artifactory po zadeklarowaniu "repozytoriów". – Chakri

1

Jeśli ma jakiś submobule, których można używać w build.gradle (do słoika)

configurations { 
    jar.archiveName = 'submodule-jar.jar' 
} 
Powiązane problemy