【问题标题】:get gradle to ignore version number in jar name让 gradle 忽略 jar 名称中的版本号
【发布时间】:2014-12-19 19:51:49
【问题描述】:

我有一个项目必须构建大约 10 个不同的虚拟 jar 来进行单元测试。我有一个这样的 gradle 项目设置

project(':CodeTools_dummydriver-true') {
    ext.dummyDriver = true
    archivesBaseName = "dummydriver-true"
}

但问题是 jarfile 仍然命名为 dummydriver-true-0.0.1.jar。有什么方法可以告诉 gradle 忽略标准模式,并将输出文件命名为我想要的名称?意思是,没有版本号?

【问题讨论】:

    标签: gradle


    【解决方案1】:

    对于较新的 gradle,您应该使用:

    build.gradle.kts:

    tasks.jar {
        archiveFileName.set("${project.name}-new-name.jar")
    }
    

    build.gradle:

    jar.archiveFileName = "new-name.jar"
    

    因为archiveName 已被弃用。 (您还必须指定.jar)。

    【讨论】:

      【解决方案2】:

      Java 插件defines the jar task 遵循archiveName 的以下模板:

      ${baseName}-${appendix}-${version}-${classifier}.${extension}
      

      我认为没有办法应用新的“命名模板”,但您可以做的是明确设置 jar 任务的存档名称,如下所示。 (另外,直接使用dummyDriver 属性而不是将“true”硬编码到存档名称中不是一个好主意吗?)

      archivesBaseName = "dummydriver"
      jar.archiveName = "${jar.baseName}-${dummyDriver}.${jar.extension}"
      

      或者,将 version 属性设置为 null 或空字符串,就像 Circadian 的回答中所建议的那样,但是如果您想将 version 属性用于任何事情,您不想破坏它。

      【讨论】:

        【解决方案3】:

        添加版本属性并将其值设置为空字符串对我有用。

        这是一个例子:

        project(':CodeTools_dummydriver-true') {
            ext.dummyDriver = true
            archivesBaseName = "dummydriver-true"
            version= ""
        }
        

        希望对您有所帮助。

        【讨论】:

        • 也可以设置为null
        猜你喜欢
        • 2013-06-06
        • 1970-01-01
        • 2018-08-14
        • 1970-01-01
        • 2016-09-14
        • 1970-01-01
        • 1970-01-01
        • 2023-03-22
        • 2020-07-06
        相关资源
        最近更新 更多