Gradle上传Artifactory时重命名war制品及配置问题咨询
问题1:自定义Artifactory中展示的WAR文件名
可以实现,推荐两种配置方案:
- 方案1:在Maven发布配置中直接指定最终文件名
修改publishing段配置如下即可:
publishing { publications { mavenJava(MavenPublication) { // 注释掉原有from components.web配置 artifact("build/libs/Sample.war") { fileName = "WELCOME.war" } groupId = 'ABCD' artifactId = 'DEV' version = "1.0" } } }
- 方案2:直接修改war任务的输出文件名
如果用的是Gradle高版本,archiveName属性已废弃,推荐用如下配置:
war { archiveFileName.set("WELCOME.war") }
后续发布时会自动沿用war任务输出的文件名。
问题2:设置publishPom=false后POM文件依然发布的原因
publishPom参数仅对旧版本基于publishConfigs的配置发布逻辑生效,你当前用的是maven-publish插件的publications发布逻辑,该参数不会生效。
要关闭POM文件发布,可在publication配置中添加禁用规则:
publishing { publications { mavenJava(MavenPublication) { // 添加这行直接清空POM内容,避免发布 pom.withXml { asNode().remove(asNode()) } from components.web groupId = 'ABCD' artifactId = 'DEV' version = "1.0" } } }
也可以直接替换from components.web为指定war文件的配置,就不会自动生成POM文件。
问题3:上传自定义命名的Sample.war到Artifactory
按如下两步调整配置即可:
- 确保war任务输出文件名配置正确,低版本Gradle可沿用你现有
war.archiveName "Sample.war"配置,高版本建议替换为war.archiveFileName.set("Sample.war") - 修改publication配置,直接绑定war任务的输出文件:
publishing { publications { mavenJava(MavenPublication) { // 替换原有from components.web配置,直接引用war任务输出 artifact war.outputs.files.singleFile groupId = 'ABCD' artifactId = 'DEV' version = "1.0" } } }
调整完成后重新执行gradle build artifactoryPublish,即可将Sample.war上传至Artifactory。
内容的提问来源于stack exchange,提问作者Anirudh Venkata
相关产品推荐
相关产品推荐

