Gradle - имя файла jar в java-плагине
Я пытаюсь с Gradle в первый раз. Я пытаюсь с проектом maven java для компиляции и создания файла jar. Он компилирует и создает файл jar в каталоге build/libs как
Ствол -XXXVERSION-SNAPSHOT.jar
Я запускаю файл сборки Gradle из каталога соединительных линий этого проекта maven java.
Я хочу получить имя проекта (для ex: project1) в имени файла jar, что-то вроде
project1 -XXXVERSION-SNAPSHOT.jar
в каталоге build/libs.
Пожалуйста, предложите.
Ответы
Ответ 1
Имя проекта по умолчанию берется из каталога, в котором хранится проект. Вместо того, чтобы явно менять имя ящика, вы должны установить имя проекта правильно для своей сборки. На данный момент это невозможно в файле build.gradle
. Вместо этого вам нужно создать файл settings.gradle
в корневом каталоге. Этот файл settings.gradle
должен содержать этот один вкладыш:
rootProject.name = 'project1'
Ответ 2
Попробуйте установить:
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.
Ответ 3
Если у вас есть некоторый подмодуль, вы можете использовать его в build.gradle(для jar)
configurations {
jar.archiveName = 'submodule-jar.jar'
}
Ответ 4
Я недавно перешел на Gradle 4.6 (от 3. что-то) и
jar {
baseName = 'myjarname'
}
перестал работать, gradle назвал мою банку из имени папки.
Поэтому я переключился на archivesBaseName = 'myjarname'
который работает.
Может быть, это помогает кому-то еще.
Ответ 5
Для Gradle 5+
build.gradle
DSL
archiveBaseName = 'foo'
build.gradle.kts
котлин DSL
archiveBaseName.set("foo") // Notice the double quotes