2010-08-25 9 views
5

¿Cómo puedo bloquear la versión de un complemento Maven que quiero usar?Cómo bloquear la versión del complemento maven

que tienen el plugin PMD configurado de este modo:

<plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-pmd-plugin</artifactId> 
       <version>2.5</version> 
       <configuration> 
        <outputDirectory>target/pmd</outputDirectory> 
        <targetDirectory>target/</targetDirectory> 
        <aggregate>true</aggregate> 
        <targetJdk>1.6</targetJdk> 
        <rulesets> 
         <ruleset>rulesets/basic.xml</ruleset> 
         <ruleset>rulesets/codesize.xml</ruleset> 
         <ruleset>rulesets/coupling.xml</ruleset> 
         <ruleset>rulesets/design.xml</ruleset> 
         <ruleset>rulesets/imports.xml</ruleset> 
         <ruleset>rulesets/logging-java.xml</ruleset> 
         <ruleset>rulesets/optimizations.xml</ruleset> 
         <ruleset>rulesets/strings.xml</ruleset> 
         <ruleset>rulesets/unusedcode.xml</ruleset> 
        </rulesets> 
       </configuration> 
      </plugin> 

Anoche, mi nightly build falló y ya no puede ejecutar ninguna meta PMD, ya que está tratando de encontrar la versión 2.6-instantánea de ese plugin. ¿Por qué está tratando de encontrar 2.6-SNAPSHOT si tengo una etiqueta de versión que dice 2.5? Además, 2.6-SNAPSHOT no está en el centro, ¿por qué mi cliente experto cree que existe? Versión

Maven: Versión 2.0.9
Java: 1.6.0_17
nombre del sistema operativo: "Linux" versión: Arco "2.6.24-24-generic": "i386" Familia: "Unix"

Editar:

Actualicé a maven 2.2.1 y observé el mismo problema que antes. Pude conseguir que el proyecto fuera compilado eliminando 2.6-SNAPSHOT de los metadatos en mi repositorio (.m2/repository/org/apache/maven/plugins/maven-pmd-plugin/maven-metadata-central.xml). También configuré la última etiqueta de Version en 2.5. Obviamente, esta no es la solución, porque tendré que implementar mi propio complemento o cambiar la versión almacenada en caché en todos los clientes.

+1

Parece un error de Maven. La etiqueta "versión" existe especialmente para corregir la versión del complemento y para garantizar que su compilación sea reproducible, incluso cuando hay una nueva versión del complemento. –

+0

Ha intentado esto con una de las versiones más nuevas de Maven, están en 2.2.1 en este momento. Si está arreglado allí, entonces es un error en maven. – Goibniu

+0

La actualización no pareció ayudar (ver la edición anterior) – Greg

Respuesta

2

procedimiento estándar en estos casos: eliminar la carpeta plugin correspondiente en tu repositorio local:

.m2/repository/org/apache/maven/plugins/maven-pmd-plugin/ 

Esto ayuda en la mayoría de los casos.

Si no, probablemente obtenga datos incorrectos de un repositorio. Si está utilizando un nexo, reconstruya el índice.

+2

Lo tengo funcionando. El problema eran los metadatos del complemento provenientes del repositorio de JBOSS. Proxingé http://repository.jboss.org/nexus/content/groups/public/ que estaba causando el problema. Cambié mi proxy a https://repository.jboss.org/nexus/content/repositories/releases/, eliminé mi repositorio local y pude compilar. – Greg

Cuestiones relacionadas