web-dev-qa-db-fra.com

Nexus accepte le téléchargement mais dit qu'il a échoué

Lorsque j'exécute mvn release:perform sur un POM parent, le serveur répond avec cette erreur sur l'un des projets enfants (noms de fichiers supprimés):

[ERREUR] Échec de l'exécution de l'objectif org.Apache.maven.plugins: maven-deploy-plugin: 2.7: deploy-file (default-cli) sur le projet: échec du déploiement des artefacts: impossible de transférer l'artefact depuis/vers le référentiel: échec vers transférer le fichier. Le code retour est: 400, ReasonPhrase: Bad Request.

Cependant, tous les fichiers de ce projet enfant sont téléchargés avec succès! Je vois un nouveau répertoire (nommé d'après le numéro de version) et il contient tous les fichiers .jar, .pom, .md5 et .sha1 auxquels on peut s'attendre.

Je n'ai pas accès au serveur Nexus, mais je me demande ce qui pourrait provoquer cela et comment y remédier. Est-il possible que Maven essaie de télécharger ce projet enfant particulier deux fois? Si oui, pourquoi Maven ferait-il cela et comment puis-je l'arrêter?

MISE À JOUR: Si vous rencontrez le même problème, consultez la réponse avec le plus de votes positifs dans cet article . L'Iran mvn help:effective-pom et a constaté que le projet en question avait en fait eu deux exécutions de la phase de déploiement. La suppression d'une de ces exécutions a résolu mon problème.

22
Rob Johansen

J'ai rencontré le même problème, libérant un projet multi-module maven . Une erreur s'est produite la première fois mais l'objectif de déploiement avait déjà contacté nexus puis créé le chemin d'accès approprié. En supposant qu'un repo "release" soit à écriture unique, la deuxième fois que je l'ai déclenché, nexus refuse d'écraser le chemin.

Donc, dans un tel cas, vous pourriez demander à votre administrateur de supprimer le dépôt ... ou de créer une nouvelle version.

PS: mieux vaut tard que jamais;)

3
Jean-Rémy Revy