J'obtiens une erreur lors du déploiement d'un artefact dans mon propre référentiel sur un serveur Nexus: "Échec du déploiement des artefacts: impossible de transférer l'artefact" "Échec du transfert du fichier http: /// mon_artifact. Le code de retour est: 400"
J'ai Nexus en cours d'exécution 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>
- l'utilisateur a les autorisations pour créer / lire / écrire dans my_repo -
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>
puis j'exécute
mvn deploy
et obtenez l'erreur. Une idée?
maven
deployment
pom.xml
nexus
acimutal
la source
la source
Réponses:
Quelques choses auxquelles je peux penser:
Vérifiez-les et si vous rencontrez toujours des problèmes, fournissez plus de détails ici.
la source
Juste pour créer une réponse séparée. La réponse se trouve en fait dans un commentaire pour la réponse acceptée.
Essayez de changer la version de votre artefact pour terminer
-SNAPSHOT
.la source
400 Bad Request sera retourné si vous essayez de:
la source
La cause du problème pour moi était que -source.jars était téléchargé deux fois (avec maven-source-plugin) comme mentionné comme l'une des causes dans la réponse acceptée. Redirection vers la réponse que j'ai référée: plugin de version Maven échoue: les artefacts source sont déployés deux fois
la source
J'ai eu ce problème exact aujourd'hui et le problème était que la version que j'essayais 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'un appel antérieur de release: perform. Même si j'ai perdu ma connexion, il semble que la publication a réussi.
la source
Dans le cas rare où vous auriez besoin de redéployer l'artefact MÊME STABLE sur Nexus, il é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 toujours, car le simple fait de supprimer le fichier par exemple jar ou pom ne supprime pas les autres fichiers qui traînent toujours dans le répertoire. Vous devez vous connecter à la boîte et supprimer le répertoire dans son intégralité.
la source
content/vol-{01-43}/chap-{01-47}
J'ai eu le même problème aujourd'hui avec l'ajout "Le code de retour est: 400, ReasonPhrase: Bad Request." qui s'est avéré être le problème "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 Release. Ce n'est peut-être pas une bonne pratique, car cela est défini pour une raison, vous pouvez néanmoins aller dans "Paramètres d'accès" dans l'onglet "Configuration" de vos référentiels Nexus et définir la "Politique de déploiement" sur "Autoriser le redéploiement".
la source
exemple: 0.0.1-SNAPSHOT
la source
Assurez-vous qu'il n'existe pas déjà (artefact et version) dans nexus (en tant que version). Dans ce cas, retournez Bad Request.
la source
Pour l'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à là, c'est pourquoi vous avez reçu un message "Impossible de mettre ' https: //yoururl/some.jar '. Reçu le code d'état 400 du serveur: le référentiel n'autorise pas la mise à jour des ressources:" votre nom du référentiel "
Vous avez donc 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
la source
Si l'une des réponses ci-dessus fonctionne, 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: // VOTRE_URL: 8081 / nexus (nom d'utilisateur: mot de passe par défaut de l' administrateur : admin123 )Click repositories
sur le côté gauche puis cliquez sur le repo, Par exemple: cliquez sur relâcher.artifact Upload
(dernier onglet).GAV definition
commeGAV Param
- Entrez ensuite votre groupid, votre identifiant d'artefact et votre version.Vous pourrez maintenant ajouter le corrsponding dans votre projet (capture d'écran ci-dessous)
la source
Cela peut également se produire si vous avez une politique de dénomination 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 dépôt),
2.0.1
mais j'ai découvert plus tard que notre configuration nexus n'autorisait rien d'autre que le nombre entier pour les versions.J'ai essayé plus tard avec la version
2
et l' ai déployée avec succès.Le message d'erreur n'aide certainement pas:
Un meilleur message aurait pu être
version 2.0.1 violates naming policy
la source
L'ID du serveur doit correspondre à l'ID du référentiel de maven settings.xml
la source