Gradle - jar file name in java plugin
我是第一次尝试Gradle。 我正在尝试使用Maven Java项目来编译和创建jar文件。 它正在build / libs目录中编译并创建jar文件,如下所示:
trunk-XXXVERSION-SNAPSHOT.jar
我正在从这个Maven Java项目的主干目录运行gradle构建文件。
我想在jar文件名中获取项目名称(例如:project1),例如
project1-XXXVERSION-SNAPSHOT.jar
在build / libs目录中。
请提出建议。
尝试设置:
1 | archivesBaseName = 'project1' |
要么
1 | jar.baseName = 'project1' |
这是完整的解决方案:
1 2 3 4 5 | trunk ? build ? libs ? project1-1.0-SNAPSHOT.jar ? build.gradle |
build.gradle是:
1 2 3 4 5 6 | apply plugin: 'java' apply plugin: 'maven' archivesBaseName = 'project1' version = '1.0-SNAPSHOT' group = 'example' |
它会生成正确的ZIP,POM和JAR。
默认项目名称取自存储项目的目录。与其显式更改jar的命名,不如设置正确的项目名称。目前,这在
1 | rootProject.name = 'project1' |
我最近迁移到了gradle 4.6(从3.开始),并且
1 2 3 | jar { baseName = 'myjarname' } |
停止工作,gradle从文件夹名称中命名了我的jar。
所以我切换到
也许这也对其他人有帮助。
如果您有一些子级分子,则可以在build.gradle中使用(用于jar)
1 2 3 | configurations { jar.archiveName = 'submodule-jar.jar' } |
您还可以使用:
1 2 3 | tasks.jar { archiveFileName.set("app.jar") } |
如果要将日期附加到jar文件名中,可以这样进行:
1 2 3 | jar { baseName +='_' +new java.text.SimpleDateFormat("dd_MM_yyyy").format(new java.util.Date()) println(baseName) // just to verify |
结果为
当前使用Kotlin作为Gradle DSL。以下语句对我有用:
1 2 3 | tasks.withType<AbstractArchiveTask> { setProperty("archiveFileName","hello-world.jar") } |
它也适用于Spring Boot可执行jar。
如果要保留版本号:
1 2 3 | tasks.withType<AbstractArchiveTask> { setProperty("archiveBaseName","hello-world") } |
它将产生类似