2011-03-25 7 views
0

어셈블리 플러그인 (또는 jar/war 플러그인)이 멍청한 것 같습니다. 아무 것도 할 필요가 없을 때마다 그들은 알아낼 수 없습니다.메이븐 - 어셈블리 - 플러그인 및 증분 빌드

기본 "Makefile"은 모든 종속성이 대상보다 오래된 경우 대상을 다시 컴파일하지 않습니다.

maven의 경우 포장이 "항상"완료된 것으로 보입니다! "mvn package"를 실행 한 다음 "mvn integration-test"를 실행하면 Maven이 패키지를 반복해서 처리합니다. 나는 뚱뚱한 독립형 항아리를 만들었으므로 시간이 좀 걸립니다!

또한 방법이 당신을 위해 작동하는지, 아니면 내 구성이 손상된 것입니까? 당신의 도움에 미리

감사합니다, 메이븐에서
라파엘

답변

0

는 위상을 호출 할 때마다 통해 실행되는 Life-Cycle 존재한다.

mvn integration-test 

귀하의 경우 패키지 단계가 포함 된 통합 테스트 (통합 테스트 자체 포함) 이전의 모든 단계를 실행한다는 의미입니다. 또한이 경우 통합 후 테스트가 실행되지 않는 통합 테스트 원인을 호출해서는 안됩니다. 대신 mvn verify를 호출해야합니다. 위 결과는 mvn integration-test를 호출하면 패키지 단계가 자동으로 실행된다는 것입니다. 메이븐은 메이크가 아닙니다.

+0

Maven이 패키징을 최신 패키지로 다시 유지하는 버그입니다. 이것은 빌드 도구의 첫 번째 기능이어야합니다. 증분으로 필요한 작업 만 처리하십시오. 클래스가 최신인지 여부를 확인하는 컴파일 단계의 경우입니다. 나는 그것이 왜 포장을 위해 동일하면 안되는지 보지 못한다. 또한 컴파일이나 패키징을하지 않고 통합 테스트 스위트를 다시 시작하려는 경우가 있습니다. 예를 들어 원격 테스트 -SQL 서버에서 테스트 데이터를 변경 한 경우입니다. –

+0

흠 ... 당신은 원격 SQL 서버에서 테스트 데이터를 변경했다고 썼습니다 ...하지만 왜 당신의 maven 프로젝트에 그 데이터를 넣지 않고 통합 테스트를 통해 그렇게 할 수 있습니까? 아이디어는 빌드를하는 것입니다 (테스트)를 수동으로 수행하지 않아도 자동으로 수행 할 수 있습니다. 반면에 패키지를 업데이트해야하는지 여부는 알기가 쉽지 않으며 일부 패키지 형식은 패키지 내의 파일 업데이트를 지원하지 않습니다. 내 마음에 오는 다른 일은 : 당신은 큰 항아리가 있습니다. 당신이 더 작은 모듈에 대해 생각해야 할지도 모르겠군요. – khmarbaise

관련 문제