2017-12-19 5 views
0

나는 자신의 자식 프로젝트가 하위 프로젝트가있는 받는다는 프로젝트, 그래서 같이 구성한 : 하위 프로젝트 3 차례로 출력에 따라 하위 프로젝트 2의 출력에 따라다중 스레드 메이븐 서브 프로젝트가 가능합니까?

parent pom.xml listing sub-projects as modules 
    sub-project 1 pom.xml listing child-projects as modules 
      child project 1-1 pom.xml 
      child project 1-2 pom.xml 
    sub-project 2 pom.xml listing child-projects as modules 
      child project 2-1 pom.xml 
      child project 2-2 pom.xml 
      child project 2-3 pom.xml 
    sub-project 3 pom.xml listing child-projects as modules 
      child project 3-1 pom.xml 

서브 프로젝트 1의.

달성하고자하는 것은 각각의 서브 프로젝트를 순차적으로 실행하고 모든 자식 프로젝트를 병렬로 실행하는 것입니다. 그래서 같이 받는다는에 대한 -T 명령 줄 인수가 단 한 번에 모든 프로젝트를 실행하기 시작하여

Build starts 
sub-project 1 execution starts 
all child projects of sub-project 1 are started in their own threads 
all child projects of sub-project 1 finish execution 
sub-project 1 execution ends 
sub-project 2 execution starts 
all child projects of sub-project 2 are started in their own threads 
all child projects of sub-project 2 finish execution 
sub-project 2 execution ends 
sub-project 3 execution starts 
all child projects of sub-project 3 are started in their own threads 
all child projects of sub-project 3 finish execution 
sub-project 3 execution ends 
Build process completes 

: 실행 원하는 순서는 같을 것이다

Build starts 
Start sub-project 1 
start sub-project 2 
Start sub-project 3 
Start child project n... 

종속성 때문에 실패 어떤 하위 프로젝트 사이.

스레드가 메이븐에서 사용되는 방법에 대한 세분화 된 접근 방식을 지정하는 방법이 있습니까?

+0

의존성으로 인해 빌드가 실패한 경우 빌드가 결함이 있습니다. 첫 번째 테스트는 다음과 같습니다 : 로컬 repo 캐시 삭제 ('$ HOME/.m2/repository')'mvn clean package'를 통해 프로젝트 빌드 . 이것은 작동해야합니다 ... 그렇지 않으면 빌드가 잘못되었습니다 ... 또한 가장 최신 버전의 Maven을 사용하는 것이 좋습니다. – khmarbaise

+0

@khmarbaise 공격 의도는 없지만 "빌드가 잘못되었습니다."는 내가 익사하는 동안 던져진 콘크리트 구명 조끼처럼 느껴집니다. 왜 내 빌드가 잘못되었을 수 있으며, 상황을 바로 잡기 위해 어떤 조치를 취할 수 있습니까? – bakoyaro

답변

0

동일한 사용법을 사용 했으므로 -T 옵션을 사용하여 프로젝트를 빌드하는 데 멀티 스레드를 사용하도록 알려주고 하나의 하위 프로젝트가 다른 프로젝트에 종속되어 있고 아직 빌드되지 않은 경우에만이를 수행 할 수있었습니다. 그러면 분명히 기다리는 대신 실패 할 것입니다 (어떤 IMO가 올바른지, 그렇지 않으면 교착 상태가 발생하여 시스템이 중단 될 수 있음).

maven의 병렬 빌드에 대한 자세한 내용은 https://cwiki.apache.org/confluence/display/MAVEN/Parallel+builds+in+Maven+3을 참조하십시오.

+1

위에서 언급했듯이 이것이 실패 할 경우 모듈 간의 올바른 종속성을 정의하지 못했습니다 ... 여기가 문제입니다. 또한 가장 최신 버전의 Maven을 사용하는 것이 좋습니다. – khmarbaise

+0

@ 질문을 게시하기 전에 메이븐 링크를 읽으십시오. 그러나 내가 놓친 것을 다시 볼 것입니다. – bakoyaro

+0

@bakoyaro, 좋은 소리, 질문에 대한 해결책을 찾으면 알려주세요. –

관련 문제