Jeu de plugin, la version en ligne de commande dans Maven 2
- Je générer de démarrage par défaut de Maven exemple, et le type mvn checkstyle:checkstyle
, il essaie toujours d'utiliser la dernière SNAPSHOT
version. Il est probablement mal dans mon serveur Nexus, mais comment puis-je configurer le plugin de la version sur la ligne de commande dans Maven 2, comme 2.5
pour checkstyle au lieu de 2.6-SNAPSHOT
?
C:\HelloWorld>mvn checkstyle:checkstyle
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'checkstyle'.
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error building POM (may not be this project's POM).
Project ID: org.apache.maven.plugins:maven-checkstyle-plugin
Reason: Error getting POM for 'org.apache.maven.plugins:maven-checkstyle-plugin' from the repository: Failed to resolve artifact, possibly due to a repository list that is not appropriately equipped for this artifact's metadata.
org.apache.maven.plugins:maven-checkstyle-plugin:pom:2.6-SNAPSHOT
from the specified remote repositories:
nexus (http://localhost:9081/nexus/content/groups/public)
for project org.apache.maven.plugins:maven-checkstyle-plugin
Je suppose que cela pourrait être mvn checkstyle:2.5:checkstyle
, malheureusement, il ne l'est pas.
Sûrement si j'ai mis en construire de la dépendance dans pom.xml
, il va travailler, mais je veux voir comment la ligne de commande peut fonctionner.
- Si je tape dans la plus complète de l'artefact, il fonctionne mvn org.apache.maven.plugins:maven-checkstyle-plugin:2.5:checkstyle
Vous devez vous connecter pour publier un commentaire.
Si vous ne voulez pas exécuter la dernière version d'un plug-in installé dans votre dépôt local, vous devez définir le numéro de version. Et pour cela, vous devez spécifier un complet but dans la forme de:
Donc dans votre cas:
maven-dependency-plugin
2.8
,2.10
et3.0.0
dans mon local repo et Maven s'exécute2.8
par défaut. Même si je supprime2.8
Maven re-télécharge lors de la prochaine exécution.Vous pouvez également utiliser:
Mon expérience avec une nouvelle version de maven(3.3.9) est légèrement différente. Si je ne suis pas l'exécution de maven en mode hors connexion, il sera TOUJOURS aller pour une distance repo indépendamment de ce que j'ai dans le local.
Et si il trouve une version plus récente(basé sur maven-metadata.xml), il va le télécharger et l'utiliser. Qui plus est, il va scanner plusieurs repos simultanément:
Qui plus est, maven semble savoir comment comparer plusieurs fichiers de métadonnées et sélectionnez la dernière version de l'artefact.
Maven permet l'utilisation de l'Éther pour résoudre les dépendances, basé sur ce que je vois dans
resolver-status.properties
: