如何阻止Maven/Artifactory保留带有时间戳的快照

Pab*_*jim 20 java maven-2 artifactory maven

由于磁盘空间的考虑,我只希望在我的存储库中保留一个版本的任何快照.而不是保留带有时间戳后缀的多个版本

例如ecommerce-2.3-20090806.145007-1.ear

我怎么设置它?这是构建设置或存储库(Artifactory)设置

谢谢!

Ric*_*ler 26

最简单(和推荐)的方法是使用非唯一快照.如果必须使用唯一快照,则可以通过在artifactory.config.xml中的<localRepository>定义上指定<maxUniqueSnapshots>属性在Artifactory中执行此操作.

例如:

<localRepository>
  <key>snapshots</key>
  <blackedOut>false</blackedOut>
  <handleReleases>false</handleReleases>
  <handleSnapshots>true</handleSnapshots>
  <maxUniqueSnapshots>1</maxUniqueSnapshots>
  <includesPattern>**/*</includesPattern>
  <snapshotVersionBehavior>non-unique</snapshotVersionBehavior>
</localRepository>
Run Code Online (Sandbox Code Playgroud)

作为参考,您可以通过设置预定服务Nexus(通过UI)中执行此操作,它允许您指定要保留的最小数量,保留它们的最长时间以及是否在发布版本为时删除快照部署.

  • Maven 3中不再提供非唯一快照:https://cwiki.apache.org/MAVEN/maven-3x-compatibility-notes.html#Maven3.xCompatibilityNotes-NonuniqueSnapshotDeployments (11认同)
  • 您可以从Artifactory UI进入管理>存储库>编辑"libs-snapshot-local",并在名为Maven Snapshot Version Behavior的下拉列表中将其更改为"Deployer" (4认同)
  • 使用非唯一快照通常是不好的做法,因为它很难将冲突跟踪到开发人员计算机.您最好保留时间戳并使用Nexus清理旧快照. (2认同)
  • fwiw,Maven 3.x不支持非唯一快照 (2认同)

Pab*_*jim 12

请注意,此功能/功能已在MAVEN 3.0中删除

只需添加一些内容到我自己的问题:

添加

<distributionManagement>
    ...
    <snapshotRepository>
        ...
        <uniqueVersion>false</uniqueVersion>
    </snapshotRepository>
    ...
</distributionManagement>
Run Code Online (Sandbox Code Playgroud)

我的父母pom也为这个解决方案做出了贡献.

看到:

http://i-proving.com/space/Jessamyn+Smith/blog/2008-06-16_1

要更改Artifactory中存储库的唯一设置 - 以管理员身份登录 - 并选择相关repo上的编辑 - 此处为屏幕截图:

http://wiki.jfrog.org/confluence/display/RTF/Understanding+Repositories

  • 此行为在 Maven 3 中已更改。请参阅:[非唯一快照部署](https://cwiki.apache.org/MAVEN/maven-3x-compatibility-notes.html#Maven3.xCompatibilityNotes-NonuniqueSnapshotDeployments) (2认同)