Gradle'war'插件如何更改档案的名称
Posted
技术标签:
【中文标题】Gradle\'war\'插件如何更改档案的名称【英文标题】:Gradle 'war' plugin how to change name of an archiveGradle'war'插件如何更改档案的名称 【发布时间】:2019-06-27 08:11:03 【问题描述】:如何更改战争名称?
我已经尝试过了(我在文档 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。
【问题讨论】:
【参考方案1】:请参阅此文档: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
属性
【讨论】:
【参考方案2】: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
。
【讨论】:
【参考方案3】:codemule - 答案是正确的,当在 bootWar
任务中使用 archiveFileName
时会出现不同的错误消息。我正在使用 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'
【讨论】:
【参考方案4】:bootWar
archiveFileName.set 'service.war'
【讨论】:
以上是关于Gradle'war'插件如何更改档案的名称的主要内容,如果未能解决你的问题,请参考以下文章
升级 Gradle 插件后,XML 资源名称在发布版本中更改
更改 PayPal Express Checkout 插件中的 paypal 项目名称