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

如何使用Maven Deploy插件创建符号链接指向最新部署制品

实现方案

你遇到的时间戳后缀是Maven对SNAPSHOT版本的默认处理机制,要实现固定地址下载最新版本,可根据你的场景选择以下方案:

方案1:仓库服务端配置(最推荐)

主流私有Maven仓库(Nexus、Artifactory、Archiva)都原生支持该能力,无需修改本地部署逻辑:

  • Nexus:进入对应仓库配置页,开启「Allow Redeploy」部署策略后,服务端会自动生成指向最新SNAPSHOT构件的固定别名地址,你可以自定义别名规则匹配my_file_latest.zip的路径要求。
  • Artifactory:直接使用LATEST关键字替代地址中的版本号即可,地址格式为https://some_server/<groupId路径>/my_file/LATEST/my_file-LATEST.zip,服务端会自动转发到最新上传的构件。

该方案无需重复上传文件,不会占用额外存储空间,是优先级最高的选择。

方案2:本地二次部署固定版本包

如果没有仓库服务端的配置权限,可以在原有部署命令执行完成后,追加一条部署命令,将同一个zip包以latest作为版本号重新部署:

# 原有部署SNAPSHOT版本的命令
mvn -B deploy:deploy-file -DpomFile=pom.xml -Dpackaging=zip -Dfile=my_file.zip -Durl="https://some_server" -DrepositoryId="some_id"
# 追加的部署latest版本的命令
mvn -B deploy:deploy-file -DgroupId=<实际的groupId> -DartifactId=my_file -Dversion=latest -Dpackaging=zip -Dfile=my_file.zip -Durl="https://some_server" -DrepositoryId="some_id"

部署完成后即可通过https://some_server/<groupId路径>/my_file/latest/my_file-latest.zip下载最新版本。如果需要直接使用根路径的https://some_server/my_file_latest.zip,可以将第二条命令的artifactId设置为my_file_latest,省略version参数即可。

方案3:使用wagon插件直接上传指定文件

如果不需要生成多余的Maven元数据,可以用wagon-maven-plugin直接将本地文件上传到服务器指定路径:

  1. 首先在pom.xml中添加插件配置:
<build>
  <plugins>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>wagon-maven-plugin</artifactId>
      <version>2.0.2</version>
      <configuration>
        <serverId>some_id</serverId>
        <url>https://some_server</url>
      </configuration>
    </plugin>
  </plugins>
</build>
  1. 原有deploy命令执行完成后,执行以下命令上传固定名称的包:
mvn wagon:upload-single -Dwagon.fromFile=my_file.zip -Dwagon.toFile=my_file_latest.zip

该方式不会生成多余的版本目录和元数据,完全匹配你需要的wget https://some_server/my_file_latest.zip下载需求。


注意:如果你的仓库开启了部署版本不可修改的策略,方案2和方案3需要给对应账号开通覆盖上传的权限,否则latest包会上传失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 14:36:03