2014-05-23 6 views
0

My maven pom은 foo.jar에 scope :가 제공된 종속성을 제공합니다.실행 구성에 제공된 jar 파일을 추가하는 방법

Demo.java는 src/main/java 아래에 있습니다. foo가 제공하는 클래스를 가져옵니다. 이 클래스에 대한 실행 구성을 만들면 클래스를 실행하면 java.lang.NoClassDefFoundError가 throw됩니다.

TestDemo.java는 src/main/test 아래에 있습니다. 데모를 둘러싼 래퍼 일뿐입니다. 이 클래스에 대한 실행 구성을 만들면 모든 것이 올바르게 작동합니다.

작업 구성을 업데이트하고 주 클래스를 데모로 변경하면 java.lang.NoClassDefFoundError가 다시 표시됩니다.

src/main/test에 래퍼를 해킹하는 것보다 IDE에서 내 기본 클래스를 실행하는 더 좋은 방법이 있습니까?

+0

구현 또는 인터페이스에서 가져 오기가 수행됩니까? –

답변

0

provided 범위 종속성은 런타임에 클래스 경로에 있어야하지만 컴파일하는 데 필요하지 않습니다. 컴파일하는 데 종속성이 필요하다면 provided 범위가 없어야합니다.

일반적으로 provided 인 라이브러리는 컴파일에 사용되는 범위가 지정된 인터페이스 라이브러리가 compile이고 런타임에만 구현이 제공됩니다.

관련 문제