J'essaie d'utiliser onejar-maven-plugin dans mon pom.xml:
<plugin>
<groupId>org.dstovall</groupId>
<artifactId>onejar-maven-plugin</artifactId>
<version>1.4.4</version>
<executions>
<execution>
<configuration>
<mainClass>com.exmaple.myproj.MpPort_MpSoapPort_Client</mainClass>
<onejarVersion>0.97</onejarVersion>
<attachToBuild>true</attachToBuild>
<classifier>onejar</classifier>
</configuration>
<goals>
<goal>one-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<pluginRepositories>
<pluginRepository>
<id>onejar-maven-plugin.googlecode.com</id>
<url>http://onejar-maven-plugin.googlecode.com/svn/mavenrepo</url>
</pluginRepository>
</pluginRepositories>
mais pour une raison quelconque, essayer de le construire via le plugin Eclipse Maven (installation de Maven) entraîne une ERREUR DE CONSTRUCTION:
Downloading: https://mynexus.example.com/nexus/content/repositories/central/org/dstovall/onejar-maven-plugin/1.4.4/onejar-maven-plugin-1.4.4.pom
[INFO] Unable to find resource 'org.dstovall:onejar-maven-plugin:pom:1.4.4' in repository onejar-maven-plugin.googlecode.com (http://onejar-maven-plugin.googlecode.com/svn/mavenrepo)
Downloading: https://mynexus.example.com/nexus/content/repositories/central/org/dstovall/onejar-maven-plugin/1.4.4/onejar-maven-plugin-1.4.4.pom
[INFO] Unable to find resource 'org.dstovall:onejar-maven-plugin:pom:1.4.4' in repository central (http://repo1.maven.org/maven2)
Downloading: https://mynexus.example.com/nexus/content/repositories/central/org/dstovall/onejar-maven-plugin/1.4.4/onejar-maven-plugin-1.4.4.pom
[INFO] Unable to find resource 'org.dstovall:onejar-maven-plugin:pom:1.4.4' in repository central (http://repo1.maven.org/maven2)
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error building POM (may not be this project's POM).
Project ID: org.dstovall:onejar-maven-plugin
Reason: POM 'org.dstovall:onejar-maven-plugin' not found in repository: Unable to download the artifact from any repository
org.dstovall:onejar-maven-plugin:pom:1.4.4
from the specified remote repositories:
Nexus (https://mynexus.example.com/nexus/content/repositories/central)
for project org.dstovall:onejar-maven-plugin
J'ai donc téléchargé manuellement onejar-maven-plugin.jar et l'installer via la ligne de commande et il semble que j'obtienne une erreur similaire:
C:\Users\daniel\myproj>mvn install:install-file -Dfile=onejar-maven-plugin-1.4.4.jar -DgroupId=com.jolira -DartifactId=onejar-maven-plugin -Dversion=1.4.4 -Dpackaging=jar
[INFO] Scanning for projects...
Downloading: https://mynexus.example.com/nexus/content/repositories/central/org/dstovall/onejar-maven-plugin/1.4.4/onejar-maven-plugin-1.4.4.pom
[INFO] Unable to find resource 'org.dstovall:onejar-maven-plugin:pom:1.4.4' in repository onejar-maven-plugin.googlecode.com (http://onejar-maven-plugin.googlecode.com/svn/mavenrepo)
Downloading: https://mynexus.example.com/nexus/content/repositories/central/org/dstovall/onejar-maven-plugin/1.4.4/onejar-maven-plugin-1.4.4.pom
[INFO] Unable to find resource 'org.dstovall:onejar-maven-plugin:pom:1.4.4' in repository central (http://repo1.maven.org/maven2)
Downloading: https://mynexus.example.com/nexus/content/repositories/central/org/dstovall/onejar-maven-plugin/1.4.4/onejar-maven-plugin-1.4.4.pom
[INFO] Unable to find resource 'org.dstovall:onejar-maven-plugin:pom:1.4.4' in repository central (http://repo1.maven.org/maven2)
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error building POM (may not be this project's POM).
Project ID: org.dstovall:onejar-maven-plugin
Reason: POM 'org.dstovall:onejar-maven-plugin' not found in repository: Unable to download the artifact from any repository
org.dstovall:onejar-maven-plugin:pom:1.4.4
from the specified remote repositories:
Nexus (https://mynexus.example.com/nexus/content/repositories/central)
for project org.dstovall:onejar-maven-plugin
Ma compréhension est que parce que nous avons un miroir Nexus qui ne contient pas cet artefact particulier, les choses se confondent.
J'ai donc essayé de suivre les instructions sur Comment forcer Sonatype Nexus Regenerate/Reindex its Metadata mais l'onglet "Browse Index" n'a pas un tel menu contextuel! sur notre Sonatype Nexus.
J'ai lu ici que "Nexus ne met en cache que les artefacts que les clients ont demandés. Vous devez donc configurer vos poms de projet pour demander les versions appropriées". Mais c'est exactement ce que j'ai fait - sans aucun changement dans le résultat.
Comment puis-je sortir de cette situation "poulet et oeuf" et obtenir ce ver onejar-maven-plugin. 1.4.4 dans mon miroir Nexus?
(Sinon, comment puis-je le mettre dans mon cache local .m2?)
Vous pouvez forcer Maven à mettre à jour et à nouveau demander des dépendances même si le référentiel local contient des métadonnées sur les artefacts non disponibles avec -U
mvn clean install -U
devrait marcher.
Vous devez également modifier votre settings.xml
pour pointer directement vers le groupe public plutôt que vers le référentiel central. Plus d'informations peuvent être trouvées dans le livre Nexus .
Et vous devriez noter que le référentiel central n'a pas le plugin onejar
que vous essayez d'utiliser. Consultez le résultats de recherche et voyez comment le groupId
est com.joilira
et pas org.dstovall
De plus, si vous voulez vraiment utiliser le plugin onejar
de org.dstovall
vous devez ajouter l'url http://onejar-maven-plugin.googlecode.com/svn/mavenrepo/ comme référentiel proxy pour Nexus, l'ajouter au groupe public, puis utiliser le public groupe dans votre settings.xml