更改 gradle 中的 fat jar 名称

Posted

技术标签:

【中文标题】更改 gradle 中的 fat jar 名称【英文标题】:Change fat jar name in gradle 【发布时间】:2016-12-24 23:23:44 【问题描述】:

我有一个 Spring Boot 项目,我正在使用 gradle 创建胖 jar 和普通 jar。

当我运行 "gradle clean build" 时,它会创建 2 个 jar 文件。第一个是胖的,名为“abc.jar”,第二个是普通的,名称为“abc.jar.original”。

当我运行“gradle installDist”时,它正在创建名为“abc.jar”的普通jar。

我想做的是,在干净的构建中,我想创建一个名为“abc-all.jar”的胖罐子和一个名为“abc.jar”的普通罐子。所以胖子和普通jar不会互相覆盖。

【问题讨论】:

【参考方案1】:

我使用了 doLast 并简单地重命名了文件名。

build.doLast
def jarName = jar.archiveName
def fatJarName = jarName.replaceAll('.jar','-all.jar')

def jarFullPath = "$project.buildDir/libs/"+jarName
def fatJarFullPath = "$project.buildDir/libs/"+fatJarName


if ( file(fatJarFullPath).exists() ) 
    file(fatJarFullPath).delete()


//rename fat jar's name
file( jarFullPath ).renameTo( file( fatJarFullPath ) )


if ( file(jarFullPath+'.original').exists() ) 
    file(jarFullPath).delete()


//rename slim jar's name
file(jarFullPath+'.original').renameTo(file(jarFullPath))

【讨论】:

【参考方案2】:

将此添加到您的 fatjar 配置中

archiveName = "$baseName-$appendix-$version-$classifier-all.$extension"

【讨论】:

以上是关于更改 gradle 中的 fat jar 名称的主要内容,如果未能解决你的问题,请参考以下文章

Gradle:获取传递依赖项并导出到最小的运行时 fat jar

Spring Boot 2 - 更改 Jar 名称

在 fat JAR 中包含源

修改fat-jar名称

从 kotlin 多平台项目创建 fat jar

在运行时更改gradle依赖中的代码