Nexus Repository Manager的删除快照计划任务是否清除了带时间戳的工件的相关GPG签名文件?

时间:2016-07-05 03:43:39

标签: maven-3 nexus gnupg

我正在运行一个dockerized Nexus Repository Manager v2.13.0-01。我在Snapshot存储库中有要使用Remove Snapshots计划任务删除的工件。此计划任务的参数如下:

  • 存储库/组:快照(回购)
  • 最小快照数:1
  • 快照保留(天):1
  • 删除,如果已释放:(未选中)
  • 释放后的宽限期(天):1
  • 立即删除:(已选中)

当我运行此任务时,我希望至少保留1个快照,并删除超过1天的所有其他快照。我在Browse Storage标签上时注意到的是,所有.jar + .pom个文件都被删除,包括相关的.md5.sha1文件。例如,删除以下文件。

  • 我的伪像 - 0.0.1-20160705-020817-5-javadoc.jar
  • 我的伪像 - 0.0.1-20160705-020817-5-javadoc.jar.md5
  • 我的伪像 - 0.0.1-20160705-020817-5-javadoc.jar.sha1
  • 我的伪像 - 0.0.1-20160705-020817-5-sources.jar
  • 我的伪像 - 0.0.1-20160705-020817-5-sources.jar.md5
  • 我的伪像 - 0.0.1-20160705-020817-5-sources.jar.sha1
  • 我的伪像 - 0.0.1-20160705-020817-5.pom
  • 我的伪像 - 0.0.1-20160705-020817-5.pom.md5
  • 我的伪像 - 0.0.1-20160705-020817-5.pom.sha1
  • 我的伪像 - 0.0.1-20160705-020817-5.jar
  • 我的伪像 - 0.0.1-20160705-020817-5.jar.md5
  • 我的伪像 - 0.0.1-20160705-020817-5.jar.sha1

但是,关联的.asc.asc.md5.asc.sha1哈希值 NOT 被删除。例如,

  • 我的伪像 - 0.0.1-20160705-020817-5.jar.asc
  • 我的伪像 - 0.0.1-20160705-020817-5.jar.asc.md5
  • 我的伪像 - 0.0.1-20160705-020817-5.jar.asc.sha1

以下是我用于在pom.xml中发布到我的SNAPSHOT存储库的2个maven插件。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-gpg-plugin</artifactId>
    <version>1.6</version>
    <executions>
      <execution>
        <id>sign-artifacts</id>
        <phase>verify</phase>
        <goals>
          <goal>sign</goal>
        </goals>
      </execution>
    </executions>
  </plugin>
  <plugin>
    <groupId>org.sonatype.plugins</groupId>
    <artifactId>nexus-staging-maven-plugin</artifactId>
    <version>1.6.7</version>
    <extensions>true</extensions>
    <configuration>
      <serverId>mycompanynexus</serverId>
      <nexusUrl>http://nexus.mycompanynexus.io/</nexusUrl>
      <autoReleaseAfterClose>true</autoReleaseAfterClose>
    </configuration>
  </plugin>

pom.xml中的我的分发管理部分如下所示。

<distributionManagement>
 <snapshotRepository>
   <id>mycompanynexus</id>
   <url>http://nexus.mycompanynexus.io/content/repositories/snapshots/</url>
 </snapshotRepository>
 <repository>
  <id>mycompanynexus</id>
  <url>http://nexus.mycompanynexus.io/content/repositories/releases/</url>
 </repository>
</distributionManagement>

我的settings.xml未显示,我提供了发布到这些存储库的凭据。

部署时,我只需使用Maven v3.3.9输入mvn clean deploy

当我查询解决方案时,我发现了这篇博文http://blog.sonatype.com/2010/01/how-to-generate-pgp-signatures-with-maven/,但是,我不知道我是否同意签署我的SNAPSHOT文件(如果我没有,然后不会产生GPG签名和校验和,我不必担心用预定的服务删除它们。此外,OSSRH的指南说明签署SNAPSHOT工件。也许 标准做法是不签署SNAPSHOT工件?

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

对于Nexus Repository Manager的内部使用,使用GPG签署工件可能不是标准做法 - 未发布,也不是快照。但是,为了通过OSSRH分发到中央存储库,它很常见,尽管可能也不是标准的。

通常,GPG插件使用是发布配置文件的一部分,通常不用于快照部署。因此,根据您的内部需求,您可以完全不使用GPG,也可以不使用快照构建。

另一方面,快照删除计划任务应该适用于该删除。但是,在上一版本中,性能和行为方面有一些变化。我刚刚对此进行了测试,结果发现2.11+有一个回归。我们在https://issues.sonatype.org/browse/NEXUS-10460创建了一个问题。请关注更新。希望我们将在下一个版本(2.14)中包含一个修复程序。

2016-07-13更新:现在有一个补丁,固定的jar附加到链接的问题。