프로젝트 업데이트 할 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
)로 프로젝트에 종속성을 복사하십시오.
이미 시도했지만 1000 개가 넘는 오류가 발견되었습니다. – Runemoro
POM에 어떤 범위를 사용합니까? –
범위는 어디에서 볼 수 있습니까? – Runemoro