想要在build.gradle

时间:2015-07-14 11:52:43

标签: java gradle

我想在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名称和版本,那么我该如何实现呢?

5 个答案:

答案 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)

对于Gradle 6.x

将版本设置为空。

  • version =''
  • project.archivesBaseName-这样。

有关他们的DOC的更多信息!

答案 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
相关问题