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

Maven:如何在同版本下以相同文件名部署

解决Maven Deploy时SNAPSHOT版本自动添加时间戳的问题

这问题我之前折腾过好几次,Maven默认给SNAPSHOT版本构件加上时间戳后缀,是为了区分每次快照构建的差异,但如果咱们想要固定部署app-0.0.1-SNAPSHOT.jar或者直接app.jar(后者需额外配置),可以试试这两种方法:

方法一:修改快照仓库的版本唯一性配置

在你的pom.xml里找到distributionManagement节点,给snapshotRepository添加uniqueVersion=false属性,告诉Maven不要生成带时间戳的唯一版本:

<distributionManagement>
  <snapshotRepository>
    <id>your-snapshot-repo-id</id>
    <url>http://your-artifactory-snapshots-url</url>
    <uniqueVersion>false</uniqueVersion>
  </snapshotRepository>
</distributionManagement>

配置后再执行mvn deploy,就会直接部署app-0.0.1-SNAPSHOT.jar,后续同版本部署会覆盖之前的构件。

方法二:通过Maven Deploy插件强制关闭时间戳

如果不想修改仓库配置,也可以直接在maven-deploy-plugin里设置参数:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-deploy-plugin</artifactId>
      <version>3.1.1</version> <!-- 建议使用最新稳定版本 -->
      <configuration>
        <uniqueVersion>false</uniqueVersion>
      </configuration>
    </plugin>
  </plugins>
</build>

额外说明

如果你的Artifactory仓库本身配置了“强制快照版本唯一”,可能需要先去仓库设置里调整一下,但大多数情况下,Maven端的配置就能覆盖这个行为。要是想直接部署成不带SNAPSHOT的app.jar,还可以额外配置maven-jar-plugin的finalName参数:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jar-plugin</artifactId>
  <version>3.3.0</version>
  <configuration>
    <finalName>app</finalName>
  </configuration>
</plugin>

这样打包和部署出来的就是纯app.jar啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:18:34