Maven Nexus存储库3(NXRM3):删除快照任务,不删除时间戳工件

Maven Nexus存储库3(NXRM3):删除快照任务,不删除时间戳工件,maven,nexus,snapshot,nexus3,Maven,Nexus,Snapshot,Nexus3,我最近设置了NXRM3.13.0-01,并一直在为maven快照存储库构建工件快照。与本地maven构建的集成似乎还可以。它从Nexus读取数据,在构建时部署最新的时间戳工件,并在被告知时获取最新的时间戳快照。我有一个Maven-Delete Snapshot任务,配置为使用以下配置删除快照: 存储库:所有存储库 快照保留期(天):30 最小快照计数:3 如果发布,则删除:是 释放后的宽限期(天):7 但运行此任务时,不会从快照存储库中删除任何内容。之后,我还根据文档运行了一个压缩Blob St

我最近设置了NXRM3.13.0-01,并一直在为maven快照存储库构建工件快照。与本地maven构建的集成似乎还可以。它从Nexus读取数据,在构建时部署最新的时间戳工件,并在被告知时获取最新的时间戳快照。我有一个Maven-Delete Snapshot任务,配置为使用以下配置删除快照:

存储库:所有存储库
快照保留期(天):30
最小快照计数:3
如果发布,则删除:是
释放后的宽限期(天):7

但运行此任务时,不会从快照存储库中删除任何内容。之后,我还根据文档运行了一个压缩Blob Store任务,以防需要回收磁盘空间,但没有效果。从日志中,我可以看到1.0和5.8.01两个版本被确定为候选版本。但是,不会清除任何工件。在日志中,我可以看到以下内容。它找不到要删除的合格工件:

2018-09-13 10:12:49,423+0000 INFO  [qtp1041814774-1123]  admin org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'Mark Snapshots for Deletion' [repository.maven.remove-snapshots] runNow
2018-09-13 10:12:49,424+0000 INFO  [qtp1041814774-1123]  admin org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'Mark Snapshots for Deletion' [repository.maven.remove-snapshots] state change WAITING -> RUNNING
2018-09-13 10:12:49,459+0000 INFO  [quartz-5-thread-20]  *SYSTEM org.sonatype.nexus.repository.maven.tasks.RemoveSnapshotsTask - Task log: /nexus-data/log/tasks/repository.maven.remove-snapshots-20180913101249447.log
2018-09-13 10:12:49,460+0000 INFO  [quartz-5-thread-20]  *SYSTEM org.sonatype.nexus.repository.maven.tasks.RemoveSnapshotsTask - Executing removal of snapshots on repository 'maven-snapshots'
2018-09-13 10:12:49,496+0000 INFO  [quartz-5-thread-20]  *SYSTEM org.sonatype.nexus.repository.maven.internal.RemoveSnapshotsFacetImpl - Beginning snapshot removal on repository 'maven-snapshots' with configuration: org.sonatype.nexus.repository.maven.tasks.RemoveSnapshotsConfig(minimumRetained:3, snapshotRetentionDays:30, removeIfReleased:true, gracePeriod:7)
2018-09-13 10:12:49,497+0000 INFO  [quartz-5-thread-20]  *SYSTEM org.sonatype.nexus.repository.maven.internal.RemoveSnapshotsFacetImpl - Begin processing snapshots in repository 'maven-snapshots'
2018-09-13 10:12:49,504+0000 INFO  [quartz-5-thread-20]  *SYSTEM org.sonatype.nexus.repository.maven.internal.RemoveSnapshotsFacetImpl - Found 2 snapshot GAVs to analyze
2018-09-13 10:12:49,516+0000 INFO  [quartz-5-thread-20]  *SYSTEM org.sonatype.nexus.repository.maven.internal.RemoveSnapshotsFacetImpl - ---- Searching for GAVS with snapshots that qualify for deletion on repository 'maven-snapshots' ----
2018-09-13 10:12:49,517+0000 INFO  [quartz-5-thread-20]  *SYSTEM org.sonatype.nexus.repository.maven.internal.RemoveSnapshotsFacetImpl - Elapsed time: 12.14 ms, deleted 0 components from 0 distinct GAVs
2018-09-13 10:12:49,518+0000 INFO  [quartz-5-thread-20]  *SYSTEM org.sonatype.nexus.repository.maven.internal.RemoveSnapshotsFacetImpl - Finished processing snapshots with more than 3 versions created before 2018-08-14T10:12:49.517Z
2018-09-13 10:12:49,518+0000 INFO  [quartz-5-thread-20]  *SYSTEM org.sonatype.nexus.repository.maven.internal.RemoveSnapshotsFacetImpl - Updating metadata on repository 'maven-snapshots'
2018-09-13 10:12:49,519+0000 INFO  [quartz-5-thread-20]  *SYSTEM org.sonatype.nexus.repository.maven.internal.RemoveSnapshotsFacetImpl - Completed snapshot removal on repository 'maven-snapshots'
2018-09-13 10:12:49,520+0000 INFO  [quartz-5-thread-20]  *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'Mark Snapshots for Deletion' [repository.maven.remove-snapshots] state change RUNNING -> WAITING (OK)
快照存储库如下所示。我的假设是,v5.8.01-SNAPSHOT的前两个将被删除,而下两个将根据任务配置保留:

我的问题是:

  • 我错过什么了吗
  • 我能做些什么来获得想要的行为

  • 工件在保留阈值内。将保留设置为零允许按预期删除它们。谢谢@khmarbaise

    谢谢@khmarbaise,你的建议对Nexus2.x也有用,但有些事情任何人都应该关心:

    • 设置
      最小快照计数:0
      快照保留(天数):7
      意味着如果在最近7天内没有推送快照,则该工件文件夹中将没有快照
    • 如果选中了“发布时删除”,则在发布版本时,工件文件夹将从快照repo中删除

    • 我的Nexus2.x示例


    设置为保留快照版本时,即使正确配置了策略,也不会删除时间戳快照。 意识到我必须编写自己的代码来删除Nexus3中的时间戳快照,您可以在下面找到它。它工作得非常好,我能够将快照的大小从1.4 TB减少到200GB。
    完成后别忘了压缩blobstore。

    您已配置为保留
    最小快照计数:3
    …我建议将其更改为
    0
    ,您的保留天数听起来很长。通常我将Nexus配置为最多7天…并且没有宽限期…因为7天后快照已被多个快照替换其他的…所以不需要那些旧的…除此之外,还有一个很好的理由让你使用像
    5.8.01
    这样的版本吗?为什么不简单地使用
    5.8.1
    ?顺便说一句:如果你看到时间戳,它是从2018年9月11日开始的,这意味着只有两天的时间,所以我不会被删除?不幸的是,版本控制就是这样。也就是说,我是个傻瓜。保留日期是问题所在。盯着我的脸。我将它调整为0,它解决了这个问题。我盯着它看太久了。非常感谢。没问题。不时发生……欢迎来到俱乐部;-)虽然与您的答案没有直接关系,但我想补充一点,为了配置任何清理策略,(1)必须在
    清理策略
    中设置该策略,(2)将其添加到应该使用的存储库中(在
    存储库中
    ),并且-一旦完成-(3)手动执行清理任务(在
    任务中
    )和(4)然后运行名为
    Compact的任务。。。blob store
    (您在回答中提到)。