2013-08-11 2 views
16

maven 인덱서를 사용하여 maven 중앙 저장소에서 maven 인덱스를 가져옵니다. org.sonatype.aether에서 org.eclipse.aether로, 그리고 maven 3.0.5에서 maven 3.1.0으로 업데이트 한이 예외를 얻고 있습니다.java.lang.ClassNotFoundException : org.sonatype.aether.version.InvalidVersionSpecificationException

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) 

메이븐이이 페이지를 체크 아웃해야한다고 말합니다 : 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은 내 프로젝트의 일부입니다. 그렇다면이 예외를 얻는 이유는 무엇입니까 ??

답변

18

이후 버전의 maven-dependency-plugin을 사용하십시오.

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

입니다.이 기능은 저에게 적합하지 않습니다 - 2.8에서 문제가 발생할 수 있습니다. 하지만 필자의 경우 2.0 버전에서 2.1 버전으로 Maven-shade-plugin을 업그레이드하는 것이 그 트릭입니다. 왜? 나는 단서가 없다. 그러나 어떻게 든 그 문제를 해결했습니다. – StaxMan

+0

@Nico 여하튼 저에게 문제는 해결되지 않습니다. 필자는 maven-dependency-plugin 버전 2.8과 maven-shade-plugin 버전 2.1을 시행했습니다. mvn을 새로 설치 했는데도 여전히 같은 오류가 발생했습니다. –

8

이 오류는 어떤 플러그인에 대한 호환 변화 오드를 이클립스 Sonatype 오드에서 메이븐 3.1 알파 1 이동에 의해 발생된다.

이 변경 사항을 지원하기 위해 Maven 3.0.x와 3.1.x에서 모두 작동하는 새로운 버전의 영향을받는 플러그인이 게시되었습니다. 영향을받는 플러그인 목록과 최소 요구 버전은 https://cwiki.apache.org/confluence/display/MAVEN/AetherClassNotFound

+1

큰 변화 인 경우 주요 버전 번호가 올라간 이유가 궁금합니다. 사람들은 의미 론적 버전 관리에 대해 더 신경을 써야합니다. –

+0

간단히 말하자면, '3.0.5' 대신에 maven'3.2.5'를 실행하는 것이 좋습니다 (예 : intellij와 함께 제공됨) – vikingsteve