2011-11-07 3 views
16

여기에 몇 가지 Maven 개념에 대한 "나무를 통한 숲"을 보면서 힘든 시간을 보내고 있습니다. Maven은 validate으로 시작하고 test으로 시작하여 deploy으로 끝나는 일련의 소위 "빌드주기 단계"으로 사전 구성되어있는 것으로 알고 있습니다.Maven : 라이프 사이클 단계 및 목표 간의 관계

주요 빌드 단계를 대상으로 구성한 Ant의 Maven에 도착했습니다. 선형 빌드로 다른 대상에 종속 될 수 있습니다. 그런 다음 대상을 절차 작업으로 분해합니다. 메이븐 (Maven)은 이것을 지원하는 것 같지만 의 목표는입니다.

내 질문 (대상 및 작업 측면에서 생각하기 때문에 익숙하지 않음) :이 수명주기 단계 (package, verify 등)는 목표와 어떻게 관련이 있습니까? 어떤 단계에서 어떤 목표를 실행하도록 구성해야합니까, 아니면 Maven에 의해 자동으로 수행됩니다.

또는 목표가 속한 단계가 미리 정의되어 있습니까?

나는 그 (것)들 또는 그들의 조직을 위해 작동하는 주문 건물을 창조하기 위하여 목표를 어떻게 주문하는지 보지 않고있다.

어떤 선명도에 대해 미리 감사드립니다.

+0

_Maven을 참조하십시오 [내 대답 (http://stackoverflow.com/a/30953905/1744774) : Lifecycle vs. Phase vs. Plugin vs. Goal_에 대한 자세한 내용은 명명 된 항목을 참조하십시오. –

답변

11

많은 Maven 플러그인은 특정 목표 (mojo)를 특정 수명주기 단계에 바인딩합니다.

예. documentation of maven-jar-plugin:jar goal을 찾으십시오. 그것은 말합니다 :

기본적으로 라이프 사이클 단계에 바인딩 : 패키지.

또한 라이프 사이클 자체는 각 단계마다 어떤 도구를 실행해야하는지 지정하는 것입니다. 기본 패키징 유형의 경우이 도구는 Maven에서 미리 정의하고 여기에서 설명합니다. ->http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Built-in_Lifecycle_Bindings.

그러나이 예제는 완전히 사용자 정의 생명주기 바인딩을 만드는 방법을 보여줍니다. ->http://www.sonatype.com/people/2009/08/create-a-customized-build-process-in-maven/. 볼 수 있듯이 플러그인 목표의 모든 조합을 특정 수명주기 단계에 바인딩 할 수 있습니다.

마지막으로 pom 파일의 build/plugins 요소를 통해 수동으로 플러그인 실행을 추가 할 수 있습니다. 그렇게하면 특정 단계의 플러그인이 FIFO 순서로 실행됩니다.

또한이 기본값을 모두 채우는 Effective POM을 확인하는 데 도움이 될 수 있습니다. IDE의 제안 메이븐 프로젝트에 대해이 옵션,하지만 당신은 또한 명령 줄에서 효과적인 치어를 볼 수 있습니다 많은 :

mvn help:effective-pom 
+0

답변과 유용한 링크에 감사드립니다. – IAmYourFaja