IT story

Maven의 pom.xml에서 pluginManagement는 무엇입니까?

hot-time 2020. 4. 10. 08:21
반응형

Maven의 pom.xml에서 pluginManagement는 무엇입니까?


이것은 내 pom 파일의 스 니펫입니다.

....
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.4</version>                        
                <executions>
                    <execution>
                        <phase>install</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            ......
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
...

나는 명령과 함께 성공적으로 사용

mvn install

그러나 "pluginManagement"태그로 묶으려고 maven-dependency-plugin하면 install목표를 시작할 때 작동 중지됩니다 . "pluginManagement"태그가 빌드 동작을 변경하는 이유는 무엇입니까? 아니면 다른 목표 나 옵션을 사용해야합니까?


여전히 추가해야합니다

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
    </plugin>
</plugins>

pluginManagement모든 프로젝트 모듈에서 동일한 플러그인 구성을 공유하는 방법 일 뿐이 므로 빌드에서

Maven 문서에서 :

pluginManagement : 사이드 플러그인과 함께 표시되는 요소입니다. 플러그인 관리에는이 특정 프로젝트 빌드에 대한 플러그인 정보를 구성하는 것이 아니라이 프로젝트에서 상속 된 프로젝트 빌드를 구성하는 것을 제외하고는 플러그인 요소가 거의 동일한 방식으로 포함됩니다. 그러나 이는 하위 요소의 plugins 요소 내에서 실제로 참조되는 플러그인 만 구성합니다. 아이들은 pluginManagement 정의를 무시할 권리가 있습니다.


차이 <pluginManagement/>하고 <plugins/>있는 그 <plugin/>미만 :

  • <pluginManagement/>빌드의 모듈이 상속 할 플러그인의 설정을 정의합니다. 부모 pom 파일이있는 경우에 좋습니다.

  • <plugins/>플러그인의 실제 호출입니다. 에서 상속되거나 상속되지 않을 수 있습니다 <pluginManagement/>.

당신은이 할 필요가 없습니다 <pluginManagement/>그것은 부모 POM 아니라면, 프로젝트에서. 그러나 부모 pom 인 경우 자식 pom에서 다음과 같은 선언이 필요합니다.

<plugins>
    <plugin>
        <groupId>com.foo</groupId>
        <artifactId>bar-plugin</artifactId>
    </plugin>
</plugins>

구성을 정의하지 않은 방법에 주목하십시오. 하위 프로젝트의 요구에 따라 호출을 추가로 조정하지 않으면 상위에서 상속 할 수 있습니다.

자세한 내용은 다음을 확인하십시오.


하위 pom에서 사용하려는 경우에 대비하여 상위 pom에서 pluginManagement를 사용하여 구성하지만 모든 하위 플러그인에서 사용하려는 것은 아닙니다. 예를 들어 슈퍼 폼은 maven Javadoc 플러그인에 대한 몇 가지 옵션을 정의 할 수 있습니다. 각 하위 폼이 Javadoc을 사용하지 않을 수도 있으므로 pluginManagement 섹션에서 해당 기본값을 정의하십시오. Javadoc 플러그인을 사용하려는 하위 pom은 플러그인 섹션을 정의하고 상위 pom의 pluginManagement 정의에서 구성을 상속합니다.


pluginManagement : 사이드 플러그인과 함께 표시되는 요소입니다. 플러그인 관리에는이 특정 프로젝트 빌드에 대한 플러그인 정보를 구성하는 대신이 컴포넌트에서 상속되는 프로젝트 빌드를 구성하는 것을 제외하고는 플러그인 요소가 거의 동일한 방식으로 포함됩니다. 그러나 이는 하위 요소의 plugins 요소 내에서 실제로 참조되는 플러그인 만 구성합니다. 아이들은 pluginManagement 정의를 무시할 권리가 있습니다.

에서 http://maven.apache.org/pom.html#Plugin%5FManagement

에서 복사 :

Maven2-플러그인 관리 및 부모-자식 관계 문제

참고 URL : https://stackoverflow.com/questions/10483180/what-is-pluginmanagement-in-mavens-pom-xml

반응형