Подтвердить что ты не робот

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. Пожалуйста, предложите.

4b9b3361

Ответ 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