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 для работы с maven 3.1.0. Но они не говорят, в чем проблема и как ее решить. Это не очень полезно. Что мне нужно изменить, чтобы мой собственный плагин работал с maven 3.1.0???

Я дважды проверял свои зависимости с помощью:

mvn dependency:tree

И кажется, что старый org.sonatype.aether.aether-api.jar все еще находится в проекте, который содержит Исключение. Итак, в основном проект org.sonatype.aether.version.InvalidVersionSpecificationException является частью моего проекта. Так почему я получаю это исключение?

Ответы

Ответ 1

Используйте более позднюю версию плагина maven-dependency.

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

Ответ 2

Эта ошибка вызвана миграцией Maven 3.1-alpha-1 из эфира Sonatype в Eclipse Aether, что является несовместимым изменением для некоторых плагинов.

Чтобы поддержать это изменение, были опубликованы новые версии затронутых плагинов, которые работают как с Maven 3.0.x, так и с 3.1.x. Список уязвимых подключаемых модулей и их минимальная необходимая версия доступна по адресу https://cwiki.apache.org/confluence/display/MAVEN/AetherClassNotFound