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

使用lein deploy推jar到JFrog Artifactory时SNAPSHOT命名不符合预期如何解决

解决Leiningen部署SNAPSHOT包到JFrog Artifactory无时间戳后缀问题

Leiningen 2.x版本默认部署SNAPSHOT版本时使用固定的-SNAPSHOT后缀命名,不会自动生成Maven风格的时间戳后缀,且包名前缀由项目配置决定,按以下步骤调整即可匹配预期命名规则:

1. 修改项目project.clj配置

  • 修正包名前缀:你当前上传包名为stamper-0.1.0-SNAPSHOT.jar,是因为配置中项目名设置为stamper,将defproject后的第一个参数修改为context即可匹配前缀要求
  • 开启时间戳后缀生成:添加:unique-version true全局配置,启用SNAPSHOT版本自动生成唯一时间戳功能
  • 配置正确的JFrog快照仓库地址

示例配置片段:

(defproject context "0.1.0-SNAPSHOT"
  :description "项目业务描述"
  :unique-version true
  :repositories [["snapshots" {:url "https://你的JFrog域名/artifactory/libs-snapshots-local"
                               :username :env/ARTIFACTORY_USER
                               :password :env/ARTIFACTORY_PWD}]]
  ;; 其余原有项目配置保持不变
)

2. 调整JFrog Artifactory仓库配置

确认推送目标的快照仓库开启了唯一快照策略:

  • 进入Artifactory后台,找到对应快照仓库点击编辑
  • 在基础配置页中,将「Maven Snapshot Version Behavior」选项设置为Unique,不能选择Non-unique或Deployer选项

3. 执行部署命令

配置完成后先执行lein clean清除本地历史构建产物,再执行lein deploy snapshots即可,上传的jar包会自动按照[项目名]-[版本前缀].[时间戳]-[构建序号].jar规则命名,和你预期的context-0.1.0-20210728.151214-1.jar规则完全匹配。

排查注意事项

你当前使用的Leiningen 2.9.3、Maven 3.0.5版本均支持上述配置,不需要做版本降级或升级,配置不生效时优先检查本地是否有残留的旧构建产物,或Artifactory仓库的快照策略配置是否正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 07:39:04