Gradle - java插件中的jar文件名

时间:2011-07-20 20:44:10

标签: gradle

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

  

躯干 -XXXVERSION-SNAPSHOT.jar

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

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

  

PROJECT1 -XXXVERSION-SNAPSHOT.jar

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

9 个答案:

答案 0 :(得分:88)

尝试设置:

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。

答案 1 :(得分:46)

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

rootProject.name = 'project1'

答案 2 :(得分:11)

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

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

答案 3 :(得分:10)

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

jar {
    baseName = 'myjarname'
}

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

所以我转而使用了archivesBaseName = 'myjarname'

也许这也有助于其他人。

答案 4 :(得分:5)

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

tasks.jar {
    archiveFileName.set("app.jar")
}

通过Spring boot和Kotlin DSL,您可以使用:

tasks {
    bootJar {
        archiveFileName.set("app.jar")
    }
}

答案 5 :(得分:1)

当前使用Kotlin作为Gradle DSL。以下语句对我有用:

tasks.withType<AbstractArchiveTask> {
    setProperty("archiveFileName", "hello-world.jar")
}

它也可以在Spring Boot可执行jar上使用。

如果要保留版本号:

tasks.withType<AbstractArchiveTask> {
    setProperty("archiveBaseName", "hello-world")
}

它将产生类似hello-world-1.2.3.jar

的内容

答案 6 :(得分:1)

如果您使用较新的 Gradle 版本,SELECT c.`id` as `customer_id`, c.`name` as `customer_name`, i.`name` as `item_name`, i.`type` as `item_type` FROM `customers` c INNER JOIN `items` i ON c.`item_name` = i.`name` baseName 现在将被弃用。相反,使用类似

archiveName

答案 7 :(得分:0)

如果要在jar文件名后附加一个日期,可以这样:

jar {
    baseName +='_' +new java.text.SimpleDateFormat("dd_MM_yyyy").format(new java.util.Date())
    println(baseName) // just to verify

结果为<basename>_07_05_2020.jar

答案 8 :(得分:0)

您必须在build.gradle文件中删除'version'标签!