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

Rob*_*eiz 18 maven-plugin maven-3 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)
Run Code Online (Sandbox Code Playgroud)

Maven告诉我,我应该看看这个页面:http://cwiki.apache.org/confluence/display/MAVEN/AetherClassNotFound.做过某事.但是在页面上他们只是说他们知道这个问题并且他们更新了一些maven插件以便与maven 3.1.0一起运行.但他们没有说出问题是什么以及如何解决.这不是很有用.我必须改变以使我自己的插件与maven 3.1.0一起工作???

我仔细检查了我的依赖关系:

mvn dependency:tree
Run Code Online (Sandbox Code Playgroud)

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

Nic*_*ico 22

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

<plugin>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.8</version>
    .... your configuration here ....
</plugin>
Run Code Online (Sandbox Code Playgroud)

  • 这对我不起作用 - 2.8可能会出现问题.但就我而言,将maven-shade-plugin从2.0升级到2.1就可以了.为什么?我不知道.但不知何故,这解决了这个问题. (5认同)
  • 为我工作: `mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:tree` 因为我使用命令行 (2认同)

Jav*_*aru 11

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

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

  • 简单来说,您建议使用 maven `3.2.5` 而不是 `3.0.5`(例如与 intellij 捆绑在一起) (2认同)