2011-09-19 5 views
4

우리 프로젝트 중 하나에서 빌드 시스템을 Ant에서 Maven으로 전환했습니다. 프로젝트에는 많은 모듈이 있으므로 우리는 다중 모듈 Maven 프로젝트를 만들기로 결정했습니다. 우리는 소프트웨어 코딩/빌드/실행/디버깅을 위해 NetBeans를 사용하고 있습니다.Maven 다중 모듈 빌드 및 실행

오른쪽 POM의 프로젝트를 클릭하면 깨끗한 빌드를 사용하고 실제로 모든 하위 모듈을 다시 빌드하여 슈퍼 POM에 정의됩니다. 종속 모듈이 컴파일되어 이전에 로컬 저장소에 설치되었을 때 주 코드를 포함하는 하위 프로젝트의 메뉴에서 코드를 실행할 수도 있습니다.

슈퍼 POM 메뉴에서 프로젝트를 실행할 수 있습니까? 이것은 특정 하위 모듈을 실행하는 것을 포함하지만 모든 오래된 하위 모듈도 자동으로 구축하는 것이 좋습니다. (부모 프로젝트가 아닌 실행 가능한 artifact의 프로젝트에 의해 트리거되는 것이 더 좋을 것 같습니다) 이전 Ant 시스템은 Run에서이 작업을 수행했습니다. 이제 Maven을 사용하여 수동으로이 작업을 수행해야합니다.

재 구축에는 재구성 된 이슈를 로컬 저장소에 다시 설치하는 작업이 포함되지만 SNAPSHOT 버전으로 개발 중이므로 문제가 있다고 생각하지 않습니다.

답변

1

일반적으로 최종 어셈블리의 하위 프로젝트에서 프로젝트 실행을 실행해야합니다. (jar/war/..) 실행하기 전에 종속 프로젝트를 빌드하려면 영향을받는 프로젝트에 대한 종속성으로 빌드를 수동으로 실행하십시오 스크린 샷 http://screencast.com/t/fRAgLdj6

+0

전에 "Build with dependencies"를 시도했지만, 나에게 아무 것도하지 않았습니다. 문제는 우리의 컨피규레이션 아티팩트가 코드 객체의 Maven 의존성이 아니라, 빌드하는 동안 대상 디렉토리로 추출된다는 것입니다. 이제 나는 실제 종속성을 만들었지 만 Maven에게 대상 디렉토리에 항아리를 복사하지 말라고했으나 이제는 "Build with dependencies"가 작동합니다. – NagyI

0

그래서 내 대답에 대한 약간의 맥락. 사전 통합 테스트, 통합 테스트 및 통합 후 테스트 단계를 사용하여 응용 프로그램을 시작하고 통합 테스트를 실행 한 다음 다시 종료합니다. 이는 메이븐과 공통적 인 패턴이지만 올바른 단계에서 올바른 플러그인을 얻으려면 몇 가지 작업이 필요합니다 (또한 앱 수행 방식에 대한 세부 사항은 앱마다 다릅니다). 그 배경을 감안할 때

, 그것은 다음 실행 (또는 교대 단지 수동으로 빌드 섹션 <defaultGoal>pre-integration-test</defaultGoal>를 추가 조정)두고, 응용 프로그램, 모든 것을 구축 시작 mvn pre-integration-test를 실행하는 데 매우 사소한입니다. 이것은 maven 패턴에 잘 맞습니다.

+0

글쎄, 내가 찾고있는 것이 아니고 재미있어 보이므로 더 자세히 읽으려고 노력할 것이다. – NagyI

관련 문제