2010-07-19 5 views
3

나는 전쟁 설치를하면서 나의 Maven 2.2.1 설치에서 이상한 행동을 보았다.Maven이 설치 중에 업데이트 된 클래스를 무시하는 이유는 무엇입니까?

때때로 클래스를 업데이트하지만 업데이트 된 버전은 mvn install에서 생성 한 이슈에 패키지되지 않습니다.

지금까지 대상 디렉토리에 업데이트 된 .class 파일이 생성되었으며 생성 된 .war의 동일한 이름의 클래스가 동일하지 않음을 확인했습니다 (다른 날짜가 수정되고 다른 크기 임)

같은 클래스 -X 플래그 생성 디버그 출력 명령 행 메이븐 실행

:

[DEBUG * WEB-INF/클래스/myPackage에/MyClass.class 최신이다.

은 내가 또한 메이븐 빌드에서 '해결되지 않은 컴파일 문제'오류가 발생 캐시 된 파일 (?) 이클립스에서 불완전한 컴파일 어디에 이전과 같은 문제,하지만 작업 이슈에서 있었다 것 같아요 Eclipse 내보내기.

  • 어떻게 메이븐은 파일이 설치 과정에서 '최신 상태'여부를 결정 하는가?
  • Maven과 비교되는 파일은 어디입니까?
  • Maven이 처음부터 패키지를 빌드하도록 강제 할 수 있습니까?
  • 다른 아이디어라도 좋습니다.

답변

8

지금까지, 나는 업데이트의 .class 파일이 대상 디렉토리에 생성되는 것으로 확인하고, 인 .war 생산에서 같은 이름의 클래스 다른 (동일하지 않습니다 날짜 수정, 다른 크기)

그냥 확실하게, 클래스가 target\classes하지 target에서 구축되어야한다.

  • 나는 처음부터 패키지를 빌드하기 위해 메이븐을 강제 할 수 있습니까?

당신은 이것은이 clean 설치 단계를 실행하기 전에 (기본적으로 target 디렉토리를 제거)를 수행

mvn clean install 

을 실행하여 전체 빌드를 강제 할 수 있습니다.

또한 Maven 빌드 디렉토리 외부에서 클래스 사본을 확인하십시오. 이 경우 웹 응용 프로그램이므로 확인하십시오. src/main/webapp/WEB-INF/classes

+0

mvn을 설치하기 전에 mvn clean을하고 있었지만 한 명령에서 모두 수행 할 수 있다는 것을 알지 못했습니다. 팁 주셔서 감사하지만, 나는 그것을 빨리 시도해 보았고 문제를 해결하지 못했다. 예, 클래스는 대상/클래스의 패키지 구조에 있습니다. – Brabster

+0

클린 빌드를 수행해도 문제가 해결되지 않으면 빌드 디렉토리 외부에 빌드 파일이있는 것처럼 들리나 (이는 물지 않습니다!) 또는 클래스가 사용자가 제작중인 다른 아티팩트에서 가져온 것입니다. – mdma

+0

Hmmmm '... 클래스가 빌드 디렉토리 외부에서 왔습니다 ...'프로젝트를 통해 루트가 있습니다. – Brabster

관련 문제