[이플] java.lang.LinkageError: loader constraint violation: loader (instance of org/eclipse/osgi/internal/loader/EquinoxClassLoader) previously initiated loading for a different type with name “org/apache/maven/archetype/catalog/Archetype”

By | 6월 11, 2019

기존에 만들어져 있는 다른 이클립스플러그인의 소스를 우리 쪽 프로젝트에 붙여넣고,
해당 프로젝트에서 사용하고 있던 archetype-catalog-2.4.jar 파일을 우리 쪽 프로젝트의 dependency 에 지정하여 실행했는데
위와 같은 에러가 발생하였다.

검색을 해 보니, 클래스로딩이 2중으로 일어나기 때문인 것 같은데,
이런저런 삽질을 해 보다가, 저 archetype 이 외부 jar에 뿐만 아니라 기본 이클립스에도 내장되어 있지 않을까 하는데 생각이 미쳤다.
그래서 Manifest.MF 에디터에서 archetype이라는 키워드로 dependency 검색을 해 보니 역시 내장된 라이브러리가 존재했다.
(org.eclipse.m2e.archetype.common)

그래서 archetype-catalog-2.4.jar 를 의존성구조에서 제거하고 ,
대신 org.eclipse.m2e.archetype.common 을 dependency 에 추가하여 돌려보니 성공!!

정말 이클립스의 길은 거칠고도 험하다.

 

Subscribe
Notify of
guest
1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
itpsolver
4 years ago

[의문] 다른 많은 플러그인들도 3rd party jar 들을 내장하고 있을 텐데… 어떻게 충돌없이 잘 사용하고 있는 것인지? 더 좋은 방법이 있는 걸까?