Gradle - java插件中的jar文件名

Cha*_*kri 54 gradle

我第一次尝试使用Gradle.我正在尝试使用maven java项目来编译和创建一个jar文件.它正在build/libs目录中编译和创建jar文件

trunk -XXXVERSION-SNAPSHOT.jar

我正在从这个maven java项目的trunk目录运行gradle构建文件.

我想在jar文件名中获取项目名称(例如:project1),类似于

project1 -XXXVERSION-SNAPSHOT.jar

在build/libs目录中.请建议.

Art*_*wak 96

尝试设置:

archivesBaseName = 'project1'
Run Code Online (Sandbox Code Playgroud)

要么

jar.baseName = 'project1'
Run Code Online (Sandbox Code Playgroud)

这是完整的解决方案:

trunk
? build
  ? libs
    ? project1-1.0-SNAPSHOT.jar 
? build.gradle
Run Code Online (Sandbox Code Playgroud)

build.gradle是:

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

archivesBaseName = 'project1'
version = '1.0-SNAPSHOT'
group = 'example'
Run Code Online (Sandbox Code Playgroud)

它生成正确的ZIP,POM和JAR.


Ren*_*hke 50

默认项目名称取自存储项目的目录.除了明确更改jar的命名外,您应该为构建设置正确的项目名称.目前,这在build.gradle文件中是不可能的.相反,您必须settings.gradle在根目录中创建一个文件.此settings.gradle文件应包含以下一个内容:

rootProject.name = 'project1'
Run Code Online (Sandbox Code Playgroud)

  • @koppor project.name在build.gradle中只读了很长时间.如上所述,您必须使用如上所示的settings.gradle文件来更改项目名称. (3认同)

var*_*en_ 16

我最近迁移到gradle 4.6(来自3. something)和

jar {
    baseName = 'myjarname'
}
Run Code Online (Sandbox Code Playgroud)

停止工作,gradle从文件夹名称命名我的jar.

所以我切换到archivesBaseName = 'myjarname'哪个工作.

也许这也有助于其他人.


小智 13

如果你有一些submobule,你可以在build.gradle中使用(对于jar)

configurations {
    jar.archiveName = 'submodule-jar.jar'
}
Run Code Online (Sandbox Code Playgroud)


mrc*_*htr 11

在 Kotlin DSL 中,您还可以使用:

tasks.jar {
    archiveFileName.set("app.jar")
}
Run Code Online (Sandbox Code Playgroud)

使用 Spring Boot 和 Kotlin DSL,您可以使用:

tasks {
    bootJar {
        archiveFileName.set("app.jar")
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 7

如果您使用的是较新的 Gradle 版本,baseName,archiveName现在将被弃用。相反,使用类似的东西

jar {
   archivesBaseName = 'project1'
   archiveVersion = '1.0-SNAPSHOT'
}
Run Code Online (Sandbox Code Playgroud)