2011-09-30 4 views
3

Eclipse IDE에 기존 Maven 프로젝트를 가져 왔습니다. 일부 코드를 수정하고 Eclipse에서 프로젝트를 빌드했습니다. 빌드 오류가 없습니다.Maven 프로젝트가 Eclipse에서 성공적으로 빌드되지만 cmd 프롬프트에 컴파일 오류가 표시됩니다.

그러나 명령 프롬프트에서 mvn clean install을 실행하면 많은 컴파일 오류가 표시됩니다. 왜 Eclipse에 오류가 표시되지 않고 Maven에 컴파일 오류가 표시됩니까?

+1

무엇이 오류입니까? – Thilo

+0

이것은 우리의 응용 프로그램과 관련이 있으며, 기호는 클래스에 대해 찾을 수 없습니다. Ctrl + Shift + T를 사용하여 Eclipse에 클래스가 있는지 확인했습니다 – Pawan

+0

다음 정보로 질문을 확장 할 수 있습니까? Eclipse 버전, m2e 또는 m2eclipse가 설치되었거나 전혀 설치되지 않았습니다. 어떻게 Eclipse에서 빌드를 수행합니까? 사용할 Maven을 m2e에서 구성 했습니까? 이들 모두는 가능한 이유와 관련이 있습니다 ... – mliebelt

답변

5

Eclipse에는 maven scopes의 개념이 없습니다. maven은 범위에 따라 다른 클래스 경로를 갖지만 eclipse에는 단일 클래스 경로 집합 만 있습니다.

IMHO, 저는 빌드 용 m2eclipse를 신뢰하지 않습니다. 단지 개발을 돕도록하겠습니다.

+3

+1 '빌드에 m2eclipse를 신뢰하지 않습니다.' –

+0

그래서 mvn을 항상 명령 프롬프트에서만 설치하고 Eclipse IDE에서는 실행하지 말라고합니까? – Pawan

+0

그건 너에게 달렸어. 나는 유닛 및 통합 테스트를 실행할 젠킨스와 같은 지속적인 빌드 서버를 추천 할 것이다. 종속성을 수정하는 경우 mvn clean install -DskipTests = true -pl changedmodule -am && mvn -o clean verify -pl changedmodule을 사용하십시오. – TJR

1

TJR의 답변을 바탕으로 방금 나에게 일어난 구체적인 예를 들어보고 싶습니다.

또한 이클립스에서 "작동"하는 빌드가 있지만 명령 줄에서 많은 Java 컴파일러 오류가 발생하지 않았습니다. (고맙게도, 나는 항상 'mvn clean install'을 사용하여 릴리즈를 테스트합니다.)

내 경우에는 사용자 정의 hamcrest matchers를 빌드했지만 내 POM의 hamcrest 종속성은 다음과 같이 설정되었습니다. <scope>test</scope>이 범위 제한 제거 내 버그를 고쳤다.

m2e와 비슷하게 더 많은 작업이 필요합니다.

관련 문제