2016-07-05 2 views
2

Je cours un Nexus Repository Manager dockerized v2.13.0-01. J'ai des artefacts dans le référentiel Snapshot que je veux supprimer en utilisant la tâche planifiée Remove Snapshots. Mes paramètres pour cette tâche planifiée sont les suivants.La tâche planifiée Supprimer les instantanés de Nexus Repository Manager ne nettoie pas les fichiers de signature GPG associés à l'artefact horodaté.

  • Repository/Groupe: instantanés (repo)
  • de comptage instantané minimum: 1
  • rétention des clichés (jours): 1
  • Retirez si elle est rejetée: (non cochée)
  • Délai de grâce après la libération (jours): 1
  • Supprimer immédiatement: (vérifié)

Quand je lance cette tâche, je suis e xpectant au moins 1 instantané à conserver et tous les autres instantanés de plus de 1 jour à supprimer. Ce que je remarque lorsque je suis sur l'onglet Browse Storage, c'est que tous les fichiers .jar + .pom sont en train d'être supprimés, y compris les fichiers .md5 et .sha1 associés. Par exemple, les fichiers suivants sont supprimés.

  • my-artefact-0.0.1-20160705-020817-5-javadoc.jar
  • my-artefact-0.0.1-20160705-020817-5-javadoc.jar.md5
  • my- artefact-0.0.1-20160705-020817-5-javadoc.jar.sha1
  • my-artefact-0.0.1-20160705-020817-5-sources.jar
  • my-artefact 0.0.1-20160705- 020817-5-sources.jar.md5
  • my-artefact-0.0.1-20160705-020817-5-sources.jar.sha1
  • my- artefact 0.0.1-20160705-020817-5.pom
  • my-artefact 0.0.1-20160705-020817-5.pom.md5
  • my-artefact 0.0.1-20160705-020817-5. pom.sha1
  • my-artefact 0.0.1-20160705-020817-5.jar
  • my-artefact 0.0.1-20160705-020817-5.jar.md5
  • my-artefact-0.0. 1-20160705-020817-5.jar.sha1

Cependant, l'associé .asc, .asc.md5 et .asc.sha1 hash sont PAS en cours de suppression. Par exemple,

  • my-artefact 0.0.1-20160705-020817-5.jar.asc
  • my-artefact 0.0.1-20160705-020817-5.jar.asc.md5
  • my-artefact 0.0.1-20160705-020817-5.jar.asc.sha1

Voici les 2 plugins Maven que j'utilise pour publier mon logithèque dans le pom.xml.

<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> 

Ma section de gestion de la distribution dans le pom.xml ressemble à ce qui suit.

<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> 

Non indiqué est ma settings.xml où je fournir les informations d'identification pour la publication de ces référentiels.

Lorsque je déploie, je tape simplement mvn clean deploy avec Maven v3.3.9.

Comme j'Interrogation des solutions, je suis tombé sur ce billet de blog http://blog.sonatype.com/2010/01/how-to-generate-pgp-signatures-with-maven/, cependant, je ne sais pas si je suis d'accord avec pas signer mes artefacts snapshots (car si je ne l'ai pas, alors les signatures GPG et les sommes de contrôle ne seraient pas produites et je n'aurais pas à m'inquiéter de les supprimer avec le service planifié). De plus, les directives de l'OSSRH illustrent la signature d'artefacts SNAPSHOT. Peut-être que est pratique courante de ne pas signer les artefacts SNAPSHOT?

Toute aide est appréciée.

Répondre

1

Pour une utilisation interne de Nexus Repository Manager, il n'est probablement pas recommandé de signer des artefacts avec GPG - ni les images publiées ni les instantanés. Cependant, pour la distribution dans le dépôt central via OSSRH, il est assez commun, mais probablement aussi pas standard.

Généralement, l'utilisation du plug-in GPG fait partie d'un profil de version et n'est souvent pas utilisée pour les déploiements d'instantanés. Donc, en fonction de vos besoins internes, vous devriez pouvoir ne pas utiliser GPG ou ne pas utiliser les snapshots. D'autre part, la tâche planifiée de suppression d'instantané devrait fonctionner pour cette suppression. Cependant, il y a eu quelques changements en termes de performance et de comportement dans les dernières versions. Je viens de tester cela et il s'avère qu'il y a une régression dans 2.11+. Nous avons créé un problème au https://issues.sonatype.org/browse/NEXUS-10460. Veuillez suivre cela pour les mises à jour. Nous espérons inclure un correctif dans la prochaine version (2.14).

Mise à jour 2016-07-13: Un correctif est maintenant disponible et un fichier jar fixe est joint au problème lié.