Come bloccare Maven plug-in versione
Domanda
Come posso bloccare la versione di un plug-in Maven voglio utilizzare?
Ho il PMD plug-configurato in questo 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>
La notte scorsa, il mio nightly build non è riuscita e non ho più in grado di eseguire tutti gli obiettivi PMD, perché sta cercando di trovare la versione 2.6-un'istantanea di quel plugin. Perché è ancora cercando di trovare 2.6-SNAPSHOT se ho un tag versione che dice 2.5? Inoltre, 2.6-SNAPSHOT non è nel centro - perché fa il mio cliente Maven pensare che esiste
Versione Maven: 2.0.9
versione Java: 1.6.0_17
Nome OS: versione "linux": "2.6.24-24-generic" arch: "i386" Famiglia: "unix"
Modifica:
I aggiornato a Maven 2.2.1 ed ha osservato lo stesso problema di prima. Sono stato in grado di ottenere il progetto di costruire rimuovendo 2.6-SNAPSHOT dai metadati nel mio repository (.m2 / repository / org / apache / Maven / plugins / Maven-PMD-plugin / maven-metadata-central.xml). Ho anche impostare il tag latestVersion a 2,5. Questo non è ovviamente la soluzione, perché avrei dovuto sia schiero la mia plugin o cambiare la versione memorizzata nella cache su tutti i client.
Soluzione
standard procedura in questi casi: eliminare la cartella corrispondente plugin nel vostro repo locale:
.m2/repository/org/apache/maven/plugins/maven-pmd-plugin/
Questo aiuta nella maggior parte dei casi.
In caso contrario, si sono probabilmente trovato male i dati da un repository. Se si utilizza un nesso, ricostruire l'indice.