20

我正在使用 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 仍在项目中,其中包含异常。所以基本上 org.sonatype.aether.version.InvalidVersionSpecificationException 是我项目的一部分。那么为什么我会得到这个异常?

4

3 回答 3

26

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

<plugin>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.8</version>
    .... your configuration here ....
</plugin>
于 2013-10-08T04:57:18.147 回答
11

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

为支持此更改,已发布了新版本的受影响插件,它们可与 Maven 3.0.x 和 3.1.x 一起使用。https://cwiki.apache.org/confluence/display/MAVEN/AetherClassNotFound上提供了受影响插件的列表及其所需的最低版本

于 2014-04-23T20:06:43.160 回答
1

将我之前的评论转换为答案,您可以使用:

mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:tree

当然,您可以指定任何版本

于 2021-08-17T00:25:56.043 回答