让gradle忽略jar名称中的版本号

scp*_*ntm 4 gradle

我有一个项目,必须建立大约10个不同的虚拟罐子进行单元测试.我有这样的gradle项目设置

project(':CodeTools_dummydriver-true') {
    ext.dummyDriver = true
    archivesBaseName = "dummydriver-true"
}
Run Code Online (Sandbox Code Playgroud)

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

Dan*_*non 8

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

build.gradle.kts:

tasks.jar {
    archiveFileName.set("${project.name}-new-name.jar")
}
Run Code Online (Sandbox Code Playgroud)

build.gradle:

jar.archiveFileName = "new-name.jar"
Run Code Online (Sandbox Code Playgroud)

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


Jol*_*lta 7

Java插件定义了jar任务,以遵循以下模板archiveName:

${baseName}-${appendix}-${version}-${classifier}.${extension}
Run Code Online (Sandbox Code Playgroud)

我认为没有办法应用新的"命名模板",但你可以做的是明确设置你的jar任务的存档名称,就像这样.(另外,dummyDriver直接使用属性不是一个好主意,而不是将"true"硬编码到存档名称中吗?)

archivesBaseName = "dummydriver"
jar.archiveName = "${jar.baseName}-${dummyDriver}.${jar.extension}"
Run Code Online (Sandbox Code Playgroud)

或者,将version属性设置为null或空字符串,如Circadian的答案中所建议的那样,但如果您想要将该version属性用于任何事物,则不希望将其销毁.


Cir*_*ian 3

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

这是一个例子:

project(':CodeTools_dummydriver-true') {
    ext.dummyDriver = true
    archivesBaseName = "dummydriver-true"
    version= ""
}
Run Code Online (Sandbox Code Playgroud)

希望有帮助。