You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub Actions执行Maven deploy时无法重命名war或jar文件如何解决

问题根因

这是Maven的原生默认行为:<finalName> 配置仅控制本地 target 目录下生成的包名称,deploy 阶段默认会按照 artifactId-版本号.后缀 的规则命名并上传构件,不受 finalName 影响。


解决方法

方式1:通过GitHub Actions配置Maven命令实现(无需修改现有pom)

完全可以通过调整GitHub Actions中执行的Maven命令实现自定义部署包名,你可以跳过默认的deploy生命周期,直接使用deploy:deploy-file目标指定要上传的本地包和命名规则,命令示例如下:

mvn deploy:deploy-file \
  -Dfile=target/你自定义的最终包名.war \
  -DgroupId=你的项目groupId \
  -DartifactId=你想要的部署包名称前缀 \
  -Dversion=你的项目版本号 \
  -Dpackaging=war \
  -DrepositoryId=你配置的私服仓库id \
  -Durl=你的私服部署地址

将上述参数替换为你的项目实际值后,写入GitHub Actions workflow的Maven执行步骤即可,上传的包名会完全按照你指定的规则生成。

方式2:修改pom配置永久生效

如果希望所有环境执行mvn deploy都沿用自定义的finalName,可以直接在pom中补充maven-deploy-plugin的配置,在<build>下的<plugins>节点中添加以下内容:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-deploy-plugin</artifactId>
  <version>3.1.1</version>
  <configuration>
    <finalName>${project.build.finalName}</finalName>
  </configuration>
</plugin>

配置完成后,原有mvn deploy命令无需调整,即可在部署时使用你定义的finalName作为包名。


注意事项

你当前贴出的pom中所有插件配置都放在<pluginManagement>标签下,该标签仅做全局插件配置声明,不会实际生效,需要在<build>下单独新增<plugins>节点,将需要用到的插件(如maven-war-plugin、maven-deploy-plugin)再声明一次,对应的配置才会加载。


内容的提问来源于stack exchange,提问作者4help2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 13:57:05