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

Artifactory中-SNAPSHOT被替换为时间戳由哪些配置变量控制?

差异原因分析
  • 构建工具的发布配置差异:如果使用Maven进行构建发布,项目pom.xml的snapshotRepository配置项中,<uniqueVersion>参数会直接控制SNAPSHOT版本的生成规则,配置为true时会自动生成带时间戳的唯一版本,配置为false时会保留原-SNAPSHOT后缀。如果使用Gradle的maven-publish插件,对应的uniqueVersion参数也会产生相同影响,两个项目的构建脚本该配置不一致就会出现上述差异。
  • CI上传步骤的参数差异:哪怕是同一条流水线,若两个构件的上传逻辑分离,使用JFrog CLI、curl等工具上传时携带的参数不同也会触发该问题:比如第一个构件上传时携带了时间戳相关的矩阵参数,或者开启了SNAPSHOT版本自动唯一化的开关,第二个构件上传时没有对应配置。
  • 构建激活的Profile差异:如果两个项目构建时激活的Maven/Gradle Profile不同,部分Profile可能默认开启了SNAPSHOT版本唯一化的配置,也会导致最终上传后的文件名不一致。
解决方案

要避免SNAPSHOT后缀被自动替换为时间戳,可按以下优先级调整配置:

  1. 统一构建工具的发布配置
    • Maven项目在pom.xml的快照仓库配置中显式关闭唯一版本生成:
    <distributionManagement>
      <snapshotRepository>
        <id>artifactory-snapshots</id>
        <url>你的Artifactory快照仓库地址</url>
        <uniqueVersion>false</uniqueVersion>
      </snapshotRepository>
    </distributionManagement>
    
    • Gradle项目在maven-publish插件配置中显式关闭唯一版本生成:
    publishing {
      repositories {
        maven {
          url "你的Artifactory快照仓库地址"
          uniqueVersion = false
        }
      }
    }
    
  2. 统一CI上传参数:使用JFrog CLI上传时增加--snapshot=keep参数,直接保留原SNAPSHOT文件名;使用原生API上传时,不要在请求URL中拼接时间戳相关的矩阵参数,直接用原文件名上传即可。
  3. 对齐构建激活的Profile:确认两个项目构建时的激活Profile一致,关闭会触发SNAPSHOT版本唯一化的Profile配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 10:06:03