Gradle 'war' 插件如何更改存档名称
Gradle 'war' plugin how to change name of an archive
如何更改 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。
请参阅此文档:Spring Boot Gradle reference
总结:当 Spring Boot gradle 插件与 war
插件一起应用时,war
任务默认被禁用并且 "replaced"通过 Spring启动 bootWar
任务。
所以如果你想配置 war 工件,你需要配置 bootWar
任务而不是基础 war
任务:
bootWar {
baseName = 'service'
archiveName 'service.war'
}
补充说明:
- 在 Gradle 5.x 中,
archiveName
已被弃用,您应该使用 archiveFileName
代替
- 如果你设置了
archiveName
属性 你不需要设置 baseName
属性
米。 Ricciuti 的回答是正确的,但需要注意的是,即使 archiveName
在 Gradle 5.x 中已被弃用,Spring Boot 仍在 2.1.6.RELEASE 中使用它。例如,如果 bootWar 任务配置了新的 archiveFileName
属性,如下所示:
bootWar {
archiveFileName 'service.war'
}
你会得到这个错误:
Could not find method archiveFileName() for arguments [service.war] on task ':bootWar' of type org.springframework.boot.gradle.tasks.bundling.BootWar.
暂时使用archiveName
。有关详细信息,请参阅 Spring BootWar class Java doc。他们将来可能会添加archiveFileName
。
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'
}
bootWar {
archiveFileName.set 'service.war'
}
如何更改 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。
请参阅此文档:Spring Boot Gradle reference
总结:当 Spring Boot gradle 插件与 war
插件一起应用时,war
任务默认被禁用并且 "replaced"通过 Spring启动 bootWar
任务。
所以如果你想配置 war 工件,你需要配置 bootWar
任务而不是基础 war
任务:
bootWar {
baseName = 'service'
archiveName 'service.war'
}
补充说明:
- 在 Gradle 5.x 中,
archiveName
已被弃用,您应该使用archiveFileName
代替 - 如果你设置了
archiveName
属性 你不需要设置baseName
属性
米。 Ricciuti 的回答是正确的,但需要注意的是,即使 archiveName
在 Gradle 5.x 中已被弃用,Spring Boot 仍在 2.1.6.RELEASE 中使用它。例如,如果 bootWar 任务配置了新的 archiveFileName
属性,如下所示:
bootWar {
archiveFileName 'service.war'
}
你会得到这个错误:
Could not find method archiveFileName() for arguments [service.war] on task ':bootWar' of type org.springframework.boot.gradle.tasks.bundling.BootWar.
暂时使用archiveName
。有关详细信息,请参阅 Spring BootWar class Java doc。他们将来可能会添加archiveFileName
。
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'
}
bootWar {
archiveFileName.set 'service.war'
}