Gradle 如何更改使用shadowjar创建的jar的名称
我正在使用shadowJar插件构建/创建我的fatJar。在我的身体里,格雷德尔,我有这个Gradle 如何更改使用shadowjar创建的jar的名称,gradle,jar,build,Gradle,Jar,Build,我正在使用shadowJar插件构建/创建我的fatJar。在我的身体里,格雷德尔,我有这个 shadowJar{ mergeServiceFiles('META-INF/spring.*') exclude "META-INF/*.SF" exclude "META-INF/*.DSA" exclude "META-INF/*.RSA" exclude "META-INF/LICENSE" } 使用gradle shadowJar创建我的胖罐子。但是,创建的胖jar的名称是sample-SN
shadowJar{
mergeServiceFiles('META-INF/spring.*')
exclude "META-INF/*.SF"
exclude "META-INF/*.DSA"
exclude "META-INF/*.RSA"
exclude "META-INF/LICENSE"
}
使用gradle shadowJar创建我的胖罐子。但是,创建的胖jar的名称是sample-SNAPSHOT-ns.r100-all.jar。我想将其更改为sample-SNAPSHOT-ns.r100-deploy.jar。如何使用ShadowJar覆盖jar名称 ShadowJar插件提供了一个Jar任务扩展。使用属性对其进行配置,例如:
shadowJar{
mergeServiceFiles('META-INF/spring.*')
exclude "META-INF/*.SF"
exclude "META-INF/*.DSA"
exclude "META-INF/*.RSA"
exclude "META-INF/LICENSE"
archiveFileName = "sample-${classifier}-ns.r100-deploy.${extension}"
}
您可以使用占位符,如${baseName}
,${appendix}
,${version}
,${classifier}
和${extension}
请注意,从ShadowJar版本4开始,
archiveName
现在是archiveFileName
。您似乎只想将-all
替换为-deploy
,只需将分类器选项添加到ShadowJar即可:
shadowJar{
mergeServiceFiles('META-INF/spring.*')
exclude "META-INF/*.SF"
exclude "META-INF/*.DSA"
exclude "META-INF/*.RSA"
exclude "META-INF/LICENSE"
archiveName = "sample-${classifier}-ns.r100-deploy.${extension}"
classifier = 'deploy'
}
对于希望了解如何使用Kotlin DSL实现这一点的人,请执行以下操作:
tasks.withType<ShadowJar> {
archiveFileName.set("${archiveBaseName}-${archiveVersion}-${archiveClassifier}.${archiveExtension}")
}
tasks.withType{
archiveFileName.set(“${archiveBaseName}-${archiveVersion}-${archiveClassifier}.${archiveExtension}”)
}
除了Richards answer,我还想通过使用kotlin DSL执行以下操作来配置任务:
tasks {
val shadowJar by getting(ShadowJar::class) {
archiveFileName.set("${project.name}-${project.version}-foo.jar")
}
}
影子插件的默认值是
archiveName=“${baseName}-${version}-${classifier}.${extension}”
@mernst我的build.gradle文件中的命令抛出错误无法获取根项目的未知属性“baseName”