Une erreur s'est produite lors du déploiement d'un artefact dans mon propre référentiel sur un serveur Nexus: "Échec du déploiement d'artefacts: impossible de transférer l'artefact" "Échec du transfert du fichier http: /// mon_artifact. Le code de retour est: 400"
Nexus fonctionne avec un référentiel personnalisé, my_repo, avec la prochaine configuration locale maven:
settings.xml
<server>
<id>my_repo</id>
<username>user</username>
<password>pass</password>
</server>
...
<mirror>
<id>my_repo</id>
<name>Repo Mirror</name>
<url><my_url_to_my_repo></url>
<mirrorOf>*</mirrorOf>
</mirror>
pom.xml
<distributionManagement>
<repository>
<id>my_repo</id>
<name>my_repo</name>
<url><my_url_to_my_repo></url>
<layout>default</layout>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>Snapshots</name>
<url><my_url_to_my_snapshot_repo></url>
</snapshotRepository>
</distributionManagement>
et puis j'exécute
mvn deploy
et obtenez l'erreur. Une idée?
Quelques choses auxquelles je peux penser:
Vérifiez ceux-ci et si vous rencontrez toujours des problèmes, fournissez plus de détails ici.
Juste pour créer une réponse séparée. La réponse se trouve réellement dans un commentaire pour la réponse acceptée.
Essayez de changer la version de votre artefact pour qu'elle se termine par -SNAPSHOT
.
La cause du problème pour moi était -source.jars a été téléchargé deux fois (avec maven-source-plugin), ce qui est mentionné comme l'une des causes de la réponse acceptée. Redirection pour répondre à la question que j'ai citée: Le plug-in de publication Maven échoue: les artefacts source sont déployés deux fois
J'ai eu ce problème exactement aujourd'hui et le problème était que la version que je tentais de publier: perform était déjà dans le dépôt Nexus.
Dans mon cas, cela était probablement dû à une déconnexion du réseau lors d'une précédente invocation de release: perform. Même si j'ai perdu ma connexion, il semble que la publication ait réussi.
400 Bad Request sera retourné si vous essayez de:
Dans les rares cas où vous devrez redéployer l'artefact SAME STABLE sur Nexus, celui-ci échouera par défaut. Si vous supprimez ensuite l'artefact de Nexus (via l'interface Web) dans le but de le déployer à nouveau, le déploiement échouera tout de même, car il suffirait de supprimer le fichier par exemple. jar ou pom n'efface pas les autres fichiers encore présents dans le répertoire. Vous devez vous connecter à la boîte et supprimer le répertoire dans son intégralité.
exemple: 0.0.1-SNAPSHOT
Assurez-vous que n'existe pas déjà (artefact et version) dans Nexus (en tant que version). Dans ce cas, renvoyez Bad Request.
J'ai eu le même problème aujourd'hui avec l'ajout "Le code de retour est: 400, ReasonPhrase: Bad Request." problème qui se révèle être "l'artefact est déjà déployé avec cette version s'il s'agit d'une version" de la réponse ci-dessus entrez la description du lien ici
Une solution non encore mentionnée consiste à configurer Nexus pour permettre le redéploiement dans un référentiel de publication. Ce n’est peut-être pas une bonne pratique, car ceci est défini pour une raison, vous pouvez néanmoins accéder à "Paramètres d'accès" dans l'onglet "Configuration" de votre référentiel Nexus et définir la "Stratégie de déploiement" sur "Autoriser le redéploiement".
Si l’une des réponses ci-dessus est satisfaisante, vous pouvez créer un nouvel artefact directement à partir du côté administrateur de (Capture d’écran NEXUS ci-dessous).
Login to nexus
UI http: // YOUR_URL: 8081/nexus (nom d'utilisateur: admin mot de passe par défaut: admin123 )Click repositories
sur le côté gauche puis cliquez sur le référentiel, par exemple: cliquez sur le bouton de libération.artifact Upload
(dernier onglet).GAV definition
comme GAV Param
- Entrez ensuite votre identifiant de groupe, votre identifiant d'artefact et votre version.Vous pourrez maintenant ajouter le résultat correspondant dans votre projet. (Capture d'écran ci-dessous)
Cela peut également se produire si vous avez une stratégie de nommage autour de la version, interdisant la # version que vous essayez de déployer. Dans mon cas, j’essayais de télécharger une version (pour publier le repo) 2.0.1
, mais j’ai découvert plus tard que notre configuration de lien ne permettait rien d’autre que le nombre entier pour les éditions.
J'ai essayé plus tard avec la version 2
et je l'ai déployé avec succès.
Le message d'erreur ne m'aide certainement pas:
Return code is: 400, ReasonPhrase: Repository does not allow updating assets: maven-releases-xxx. -> [Help 1]
Un meilleur message aurait pu être version 2.0.1 violates naming policy
Pour une erreur 400, vérifiez le référentiel "Politique de déploiement" généralement son "Désactiver le redéploiement". La plupart du temps, la version de votre bibliothèque est déjà présente, c’est pourquoi vous avez reçu le message "Impossible de mettre PUT" https: //votre URL/some.jar '. Le code d’état 400 reçu du serveur: le référentiel le fait pas autoriser la mise à jour des actifs: "votre nom de référentiel"
Donc, vous avez quelques options pour résoudre ce problème. 1- autoriser le redéploiement 2- supprimer la version de votre référentiel que vous essayez de télécharger 3- changer le numéro de version