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

时间:2013-08-11 06:33:21

标签: maven-3 maven-plugin aether

我正在使用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插件以便与maven 3.1.0一起运行。但他们没有说明问题是什么以及如何解决。这不是很有用。 我必须改变以使我自己的插件与maven 3.1.0一起工作???

我用以下方法仔细检查了我的依赖项:

mvn dependency:tree

似乎旧的org.sonatype.aether.aether-api.jar仍在项目中,其中包含Exception。所以基本上org.sonatype.aether.version.InvalidVersionSpecificationException是我项目的一部分。那么为什么我会得到这个例外?

2 个答案:

答案 0 :(得分:22)

使用更高版本的maven-dependency-plugin。

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

答案 1 :(得分:11)

此错误是由Maat 3.1-alpha-1从Sonatype Aether迁移到Eclipse Aether引起的,这对某些插件来说是不兼容的更改。

为了支持此更改,已发布受影响的插件的新版本,这些插件可与Maven 3.0.x和3.1.x一起使用。 https://cwiki.apache.org/confluence/display/MAVEN/AetherClassNotFound

提供受影响的插件列表及其所需的最低版本