我想在build.gradle中指定jar名称和版本,所以我的build.gradle如下所示。
apply plugin: 'java'
version = "1.00.00"
dependencies {
compile files('../../lib/abc.jar')
}
jar{
manifest{
attributes ("Fw-Version" : "2.50.00", "${parent.manifestSectionName}")
}
archiveName 'abc.jar'
}
所以当我做的时候
gradle clean build ,我所期待的是生成的jar名称是abc-1.00.00.jar
但是它没有发生,输出jar名称仅作为abc.jar,它只是忽略了版本。我想指定jar名称和版本,那么我该如何实现呢?
答案 0 :(得分:29)
archiveName 'abc.jar'
配置中的 jar
强制名称为'abc.jar'。 jar名称的默认格式为${baseName}-${appendix}-${version}-${classifier}.${extension}
,其中baseName
是项目的名称,version
是项目的版本。如果删除配置中的archiveName行,您将拥有所需的格式。如果您希望存档的名称与项目名称不同,请设置baseName
,例如。
jar {
manifest{
attributes ("Fw-Version" : "2.50.00", "${parent.manifestSectionName}")
}
baseName 'abc'
}
有关配置jar
任务的详细信息,请参阅https://docs.gradle.org/current/dsl/org.gradle.api.tasks.bundling.Jar.html#org.gradle.api.tasks.bundling.Jar:archiveName。
答案 1 :(得分:1)
答案 2 :(得分:0)
如果要使用一个设置重命名JAR,源JAR和javadoc JAR,同时仍包括分类器和版本,请在顶层设置archiveBaseName
。
答案 3 :(得分:0)
阅读doc of gradle,不建议使用baseName和archiveName,您应在项目级别使用archivesBaseName,如下所示:
project(":web") {
description = "web"
archivesBaseName = "your-project-name-" + getVersionCode()
jar {
// Will include every single one of your dependencies, project or not
from {
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}
}
}
对我的项目来说效果很好。希望对您的项目有帮助。
答案 4 :(得分:0)
对于 5年级以上
build.gradle
常规DSL
archiveBaseName = 'foo'
build.gradle.kts
科特林DSL
archiveBaseName.set("foo") // Notice the double quotes