Gradle'war'插件如何更改档案名称

时间:2019-02-03 09:50:12

标签: spring-boot gradle war

如何更改战争名称?

我已经尝试过(我在文档https://docs.gradle.org/4.10.2/dsl/org.gradle.api.tasks.bundling.War.html中找到了这些参数)

war {
baseName = 'service'
archiveName 'service.war'
}

但是,这不起作用。我仍然有快照版本的名字。

./build/libs/search-0.0.1-SNAPSHOT.war

我正在使用Gradle 4.10和Spring Boot 2.1.2.RELEASE。

4 个答案:

答案 0 :(得分:4)

请参考此文档:Spring Boot Gradle reference

总结:将Spring Boot gradle插件与war插件一起使用时,默认情况下war任务是禁用的,而SpringBoot bootWar任务是“替换”的。

>

因此,如果要配置战争伪像,则需要配置bootWar任务,而不是基本的war任务:

bootWar {
    baseName = 'service'
    archiveName 'service.war'
}

其他说明:

  • 在Gradle 5.x中,archiveName已过时,应改为使用archiveFileName
  • 如果您设置了archiveName属性,则无需设置baseName属性

答案 1 :(得分:0)

M。 Ricciuti的答案是正确的,但需要注意的是,即使archiveName在Gradle 5.x中已被弃用,Spring Boot仍在2.1.6.RELEASE中使用它。例如,如果 bootWar 任务是使用新的archiveFileName属性配置的,如下所示:

bootWar {
    archiveFileName 'service.war'
}

您会收到此错误:

  

在类型为org.springframework.boot.gradle.tasks.bundling.BootWar的任务':bootWar'上找不到参数[service.war]的方法archiveFileName()。

暂时使用archiveName。有关详细信息,请参见Spring BootWar class Java doc。他们将来可能会添加archiveFileName

答案 2 :(得分:0)

codemule - 答案是正确的,在 archiveFileName 任务中使用 bootWar 时有不同的错误消息。我使用的是 Gradle 6.5.1。

使用下面的 bootWar 任务

bootWar {
    archiveFileName 'bst.war'
}

我收到错误信息

A problem occurred evaluating root project 'example'.
> No signature of method: build_1z1dezuc71i4g9wsz51um0q6o.bootWar() is applicable for argument types: (build_1z1dezuc71i4g9wsz51um0q6o$_run_closure1) values: [build_1z1dezuc71i4g9wsz51um0q6o$_run_closure1@7abe6e]

当 bootWar 任务被配置为 archiveName 时它消失了

bootWar {
    archiveName 'example.war'
}

答案 3 :(得分:0)

bootWar {
    archiveFileName.set 'service.war'
}