web-dev-qa-db-ja.com

java.lang.ClassNotFoundException:org.sonatype.aether.version.InvalidVersionSpecificationException

Mavenインデクサーを使用して、MavenセントラルリポジトリからMavenインデックスをフェッチしています。私がorg.sonatype.aetherからorg.Eclipse.aetherに、そしてmaven 3.0.5からmaven 3.1.0に更新したので、この例外が発生しています。

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は、このページをチェックアウトするべきだと言っています: http://cwiki.Apache.org/confluence/display/MAVEN/AetherClassNotFound 。やったしかし、このページでは、この問題を認識しており、Maven 3.1.0で実行できるように一部のMavenプラグインを更新したと彼らは言っています。しかし、彼らは何が問題で、どのようにそれを解決するかについては言いません。それはあまり役に立ちません。自分のプラグインをMaven 3.1.0で動作させるために何を変更する必要がありますか???

私は私の依存関係をダブルチェックしました:

mvn dependency:tree

そして、古いorg.sonatype.aether.aether-api.jarは、例外を含むプロジェクトにまだ残っているようです。つまり、基本的にはorg.sonatype.aether.version.InvalidVersionSpecificationExceptionは私のプロジェクトの一部です。では、なぜこの例外が発生するのですか?

19
Robert Reiz

それ以降のバージョンのmaven-dependency-pluginを使用してください。

<plugin>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.8</version>
    .... your configuration here ....
</plugin>
22
Nico

このエラーは、Sonatype AetherからEclipse AetherへのMaven 3.1-alpha-1の移行が原因で発生します。これは、一部のプラグインでは互換性のない変更です。

この変更をサポートするために、影響を受けるプラグインの新しいバージョンが公開され、Maven 3.0.xと3.1.xの両方で動作します。影響を受けるプラグインとその最低限必要なバージョンのリストは https://cwiki.Apache.org/confluence/display/MAVEN/AetherClassNotFound で入手できます。

11
Javaru