자바 플러그인이 여러 프로젝트로 구성된 이클립스 플러그인이 있습니다. 프로젝트 중 하나에서 외부 항아리를 추가하고 일부 항아리를 사용했습니다. 컴파일 시간에는 오류가보고되지 않았지만 런타임에는 NoClassDefFoundError
예외가 발생했습니다. this 해결책을 따라 문제를 해결했습니다.주문에 외부 항아리를 추가하고 빌드 경로를 내 보냅니다. 프로젝트에서 오류가 발생합니다.
이 후 Project -> Clean..
을 실행하고 갑자기 다른 프로젝트에서 나는 The method filter(Predicate<? super String[]>) in the type FluentIterable<String[]> is not applicable for the arguments ...
이라는 오류가 발생합니다.
두 상황 모두에서 FluentIterable
clasess를 비교했으며 그 원점은 변경되지 않았습니다.
왜 이런 일이 발생합니까?
Eclipse 플러그인의 코드를 여러 프로젝트로 분할하는 것이 어떻게 가능합니까? [문제를 재현 할 수있는 예] (https://stackoverflow.com/help/mcve)를 제공해주십시오. 어떤 Eclipse 버전과 어떤 Java 버전을 사용합니까? – howlger
@howlger 종속성이있는 Maven 구조체를 사용합니다. 나는 그 문제를 발견했다. 가져온 Jar는'guava'에서 다른'FluentIterable' 클래스를 사용하고 있었기 때문에 클래스 경로를 다시 변경할 때 깨끗하게 실행하지 않았기 때문에 클래스에 대해 동일한 출처를 보았습니다. –
@howlger 나에게 명확하지 않은 것은 : 외부 항아리를 사용하는 패키지에 대해서만 빌드 경로를 설정했기 때문에 다른 패키지에 영향을 미치는 이유는 무엇입니까 (내 경우에는 다른 프로젝트에 영향을줍니다!) –