2013-08-26 2 views
0

m2e 플러그인과 함께 eclipse Kepler를 사용 중이므로 maven 프로젝트를 수정하고 컴파일하려고합니다. 먼저 Configure -> Convert to maven project을 사용하여 maven 프로젝트로 변환했지만 아직 누락 된 많은 수입이있었습니다. Run as... -> Maven install을 사용하면 프로젝트가 컴파일됩니다.Maven 프로젝트가 컴파일되지만 작업 영역에 가져 오기가 누락되었습니다.

누락 된 가져 오기는 어떻게 해결할 수 있습니까?

답변

3

프로젝트 업데이트 할 m2e 알려주기 : 프로젝트/메이븐/업데이트 프로젝트의 컨텍스트 메뉴를 ...

m2e 다음 POM을 다시 읽고 클래스 경로를 업데이트하고 프로젝트를 다시 구축 할 것입니다.

당신이 당신의 .classpath 파일이이 있는지 확인 :

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> 
    <attributes> 
     <attribute name="maven.pomderived" value="true"/> 
    </attributes> 
</classpathentry> 

주 : 실제 구문을 사용하는 m2e 버전에 따라 약간 다를 수 있습니다.

또 다른 일반적인 함정 범위 provided입니다 :

provided
이 훨씬 compile처럼,하지만 당신은 JDK 또는 컨테이너가 런타임에 의존성을 제공 할 것으로 예상 나타냅니다. 예를 들어, Java Enterprise Edition 용 웹 응용 프로그램을 빌드 할 때 웹 컨테이너가 해당 클래스를 제공하기 때문에 Servlet API 및 관련 Java EE API에 대한 종속성을 제공된 범위로 설정합니다. 이 범위는 컴파일 및 테스트 클래스 경로에서만 사용할 수 있으며 변환하지 않습니다.

참고 마지막 부분이 의미 not transitive

당신은 POM (A)에 의존 말한다 "Z, 범위 제공 : Y는 내가 X 필요합니다." 프로젝트에이 종속성이 표시되지만 클래스 경로에 전혀 포함되지 않습니다.

이 문제를 해결하려면 동일한 범위 (provided)로 프로젝트에 종속성을 복사하십시오.

+0

이미 시도했지만 1000 개가 넘는 오류가 발견되었습니다. – Runemoro

+0

POM에 어떤 범위를 사용합니까? –

+0

범위는 어디에서 볼 수 있습니까? – Runemoro

관련 문제