maven-2 - proyecto - que es maven
Establecer la versión del complemento en la línea de comandos en Maven 2 (3)
Mi experiencia con una versión más nueva de maven (3.3.9) es ligeramente diferente. Si no estoy ejecutando maven en modo fuera de línea, SIEMPRE iré a un repositorio remoto independientemente de lo que tenga en el local. Y si encuentra una versión más nueva (basada en maven-metadata.xml), descargará y usará esa. Además, escaneará múltiples repos simultáneamente:
[INFO] ------------------------------------------------------------------------
[DEBUG] Resolving plugin version for com.phoenixnap.oss:springmvc-raml-plugin
[DEBUG] Could not find metadata com.phoenixnap.oss:springmvc-raml-plugin/maven-metadata.xml in local (/home/yuranos/.m2/repository)
[DEBUG] Using transporter WagonTransporter with priority -1.0 for https://repo.spring.io/libs-milestone
[DEBUG] Using transporter WagonTransporter with priority -1.0 for https://repo.spring.io/milestone
[DEBUG] Using transporter WagonTransporter with priority -1.0 for https://repo.maven.apache.org/maven2
[DEBUG] Using transporter WagonTransporter with priority -1.0 for https://repo.spring.io/snapshot
[DEBUG] Using connector BasicRepositoryConnector with priority 0.0 for https://repo.spring.io/libs-milestone
[DEBUG] Using connector BasicRepositoryConnector with priority 0.0 for https://repo.spring.io/milestone
[DEBUG] Using connector BasicRepositoryConnector with priority 0.0 for https://repo.maven.apache.org/maven2
[DEBUG] Using connector BasicRepositoryConnector with priority 0.0 for https://repo.spring.io/snapshot
Downloading: https://repo.spring.io/libs-milestone/com/phoenixnap/oss/springmvc-raml-plugin/maven-metadata.xml
Downloading: https://repo.spring.io/snapshot/com/phoenixnap/oss/springmvc-raml-plugin/maven-metadata.xml
Downloading: https://repo.maven.apache.org/maven2/com/phoenixnap/oss/springmvc-raml-plugin/maven-metadata.xml
Downloading: https://repo.spring.io/milestone/com/phoenixnap/oss/springmvc-raml-plugin/maven-metadata.xml
[DEBUG] Writing tracking file /home/yuranos/.m2/repository/com/phoenixnap/oss/springmvc-raml-plugin/resolver-status.properties
[DEBUG] Writing tracking file /home/yuranos/.m2/repository/com/phoenixnap/oss/springmvc-raml-plugin/resolver-status.properties
Downloaded: https://repo.maven.apache.org/maven2/com/phoenixnap/oss/springmvc-raml-plugin/maven-metadata.xml (2 KB at 1.0 KB/sec)
[DEBUG] Writing tracking file /home/yuranos/.m2/repository/com/phoenixnap/oss/springmvc-raml-plugin/resolver-status.properties
Downloaded: https://repo.spring.io/libs-milestone/com/phoenixnap/oss/springmvc-raml-plugin/maven-metadata.xml (2 KB at 0.9 KB/sec)
[DEBUG] Writing tracking file /home/yuranos/.m2/repository/com/phoenixnap/oss/springmvc-raml-plugin/resolver-status.properties
[DEBUG] Could not find metadata com.phoenixnap.oss:springmvc-raml-plugin/maven-metadata.xml in spring-snapshots (https://repo.spring.io/snapshot)
[DEBUG] Could not find metadata com.phoenixnap.oss:springmvc-raml-plugin/maven-metadata.xml in spring-milestones-libs (https://repo.spring.io/milestone)
Además, maven parece saber cómo comparar varios archivos de metadatos y seleccionar la última versión del artefacto. Maven utiliza Aether para resolver dependencias, según lo que veo en resolver-status.properties
:
#NOTE: This is an Aether internal implementation file, its format can be changed without prior notice.
#Mon Feb 19 23:41:24 EET 2018
maven-metadata-spring-milestones.xml.lastUpdated=1519076484366
maven-metadata-spring-snapshots.xml.error=
maven-metadata-central.xml.lastUpdated=1519076484205
maven-metadata-spring-snapshots.xml.lastUpdated=1519076484107
maven-metadata-spring-milestones-libs.xml.lastUpdated=1519076484105
maven-metadata-spring-milestones-libs.xml.error=
mvn checkstyle:checkstyle
ejemplo de inicio rápido de Maven y mvn checkstyle:checkstyle
, siempre intenta usar la última versión de SNAPSHOT
. Probablemente esté mal en mi servidor Nexus, pero ¿cómo puedo configurar la versión del complemento en la línea de comandos en Maven 2, como 2.5
para checkstyle en lugar 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
Supongo que podría ser mvn checkstyle:2.5:checkstyle
, desafortunadamente no lo es.
Seguramente si configuro la dependencia de compilación en pom.xml
, funcionará, pero quiero ver cómo puede funcionar la línea de comandos.
Si no desea ejecutar la última versión de un complemento instalado en su repositorio local, debe establecer el número de versión. Y para eso, debe especificar un objetivo totalmente calificado en forma de:
mvn groupID:artifactID:version:goal
Así que en tu caso:
mvn org.apache.maven.plugins:maven-checkstyle-plugin:2.5:checkstyle
También puedes usar:
mvn {your groupId}: {tu artifactId}: {tu versión}: {tu objetivo}