2017-07-31 2 views
0

En interne, mon entreprise utilise actuellement Nexus 3 (exécuté sur Docker) comme outil de gestion de référentiel. Dans le cadre de cela, je migré les artefacts Maven intérieur-société Nexus, en utilisant la commande boucle suivante:Modifier l'URL de téléchargement de l'installation de maven ou modifier l'URL de l'artefact Nexus 3

curl -v -u adminUsername:adminPassword \ 
--upload-file artifact.pom \ 
http://my-nexus-server/repository/maven-releases/groupId/artifactId/version/artifactId-version.pom 

Cette commande a fonctionné, et tous les fichiers ont été téléchargés avec succès Nexus. Cependant, lorsqu'un groupId avait plusieurs parties (par exemple org.apache.maven.plugins), je (par erreur) ne convertissait pas les points du groupId en barres obliques. Et donc, je l'ai fini avec une URL semblable à ceci:

http://my-nexus-server/repository/maven-releases/org.apache.maven.plugins/maven-javadoc-plugin/1.2.3/maven-javadoc-plugin-1.2.3.pom

et qui se sont avérés être un problème, parce que quand Maven lire le fichier pom.xml, il a converti la dépendance suivante:

<dependency> 
    <groupId> org.apache.maven.plugins </groupId> 
    <artifactId> maven-javadoc-plugin </artifactId> 
    <version> 1.2.3 </version> 
</dependency> 

à l'adresse suivante:

http://my-nexus-server/repository/maven-releases/org/apache/maven/plugins/maven-javadoc-plugin/1.2.3/maven-javadoc-plugin-1.2.3.pom

Alors, je dois faire l'un des tw o les choses:

  • Trouver un moyen de dire Maven (de préférence en settings.xml) à pas convertir les points à barres obliques pour le groupId, lors de l'exécution mvn install.
  • URI de changement de masse dans un référentiel Nexus. (Pour les modifications d'URI à un seul artefact aussi)

Pour mémoire, nous utilisons Nexus 3 et Maven 3. Le référentiel Maven dans Nexus est un référentiel hébergé par Maven 2.

Une idée sur l'une de ces tâches?

Merci d'avance!

Répondre

1
  • Trouver un moyen de dire Maven (de préférence en settings.xml) à pas convertir les points à barres obliques pour groupId, lors de l'exécution mvn install.

Je ne pense pas que ce soit possible - encore moins une bonne idée. Maven s'appuie sur le fait que tout le monde mappe les GAV aux chemins d'URI de la même manière.

  • URIs de masse de changement dans un référentiel Nexus. (Je vais prendre un seul artefact URI change trop)

Je ne suis pas au courant d'une façon de le faire.

Si vous pouvez, toutefois, commencer à partir de zéro, je sérieusement envisager d'utilisermvn deploy:deploy-file plutôt que d'un outil de bas niveau comme curl.Quelque chose comme

mvn deploy:deploy-file -Dfile=... -DpomFile=... 

dans un script shell. Le maven-deploy-plugin extrait automatiquement le GAV du pom.xml donné et l'utilise pour construire le chemin d'URI correct; vous n'avez pas besoin de le faire manuellement. J'espère que cela vous aidera à démarrer.

+0

On dirait que c'est la voie à suivre, alors (à partir de zéro). Merci pour le conseil! – Udi

+0

De rien. –