2013-08-11 7 views
16

Sto utilizzando l'indice Maven per recuperare l'indice Maven dal repository centrale di Maven. Da quando ho aggiornato da org.sonatype.aether a org.eclipse.aether e da maven 3.0.5 a maven 3.1.0 sto ottenendo questa eccezione.java.lang.ClassNotFoundException: org.sonatype.aether.version.InvalidVersionSpecificationException

Caused by: java.lang.ClassNotFoundException: org.sonatype.aether.version.InvalidVersionSpecificationException 
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50) 
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244) 
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230) 

Maven mi dice che dovrei verificare questa pagina: http://cwiki.apache.org/confluence/display/MAVEN/AetherClassNotFound. Fatto. Ma sulla pagina dicono solo che sono a conoscenza di questo problema e hanno aggiornato alcuni plugin Maven per l'esecuzione con Maven 3.1.0. Ma loro non dicono qual è il problema e come risolverlo. Non è molto utile. Cosa devo cambiare per far funzionare il mio plugin con maven 3.1.0 ???

Ho ricontrollato le mie dipendenze con:

mvn dependency:tree 

e sembra che il vecchio org.sonatype.aether.aether-api.jar è ancora in progetto, che contiene l'eccezione. Quindi sostanzialmente org.sonatype.aether.version.InvalidVersionSpecificationException fa parte del mio progetto. Allora perché ottengo questa eccezione ??

risposta

18

Utilizzare una versione successiva di Maven-dependency-plugin.

<plugin> 
    <artifactId>maven-dependency-plugin</artifactId> 
    <version>2.8</version> 
    .... your configuration here .... 
</plugin> 
+3

Questo non ha funzionato per me - problema può verificarsi con 2.8. Ma nel mio caso, l'aggiornamento di maven-shade-plugin da 2.0 a 2.1 ha funzionato. Perché? Non ho idea. Ma in qualche modo ha funzionato attorno al problema. – StaxMan

+0

@Nico In qualche modo questo non risolve il problema per me. Ho implementato la versione 2.8 di maven-dependency-plugin e la versione 2.1 del plugin maven-shade-plugin. Ha fatto una installazione di mvn clean, ma ha comunque lo stesso errore. –

8

Questo errore è causato dal Maven 3,1-alfa-1 migrazione da Sonatype etere a Eclipse Etere, che è una modifica non compatibile per alcuni plug.

Per supportare questa modifica, sono state pubblicate nuove versioni dei plugin interessati che funzionano sia con Maven 3.0.x che 3.1.x. Un elenco di plug-in interessati e la loro versione minima necessaria è disponibile a https://cwiki.apache.org/confluence/display/MAVEN/AetherClassNotFound

+1

Mi chiedo solo perché il numero della versione principale non sia aumentato, se si tratta di un cambiamento sostanziale. Le persone dovrebbero preoccuparsi di più del versioning semantico. –

+0

In termini semplici, si consiglia di eseguire con maven '3.2.5' invece di' 3.0.5' (che è ad esempio in bundle con intellij) – vikingsteve