programing

Maven's pom.xml의 plugin Management란 무엇입니까?

newsource 2022. 8. 19. 20:53

Maven's pom.xml의 plugin Management란 무엇입니까?

이건 내 폼 파일의 일부야.

....
        <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

단, "plugin Management" 태그에 삽입하려고 하면maven-dependency-plugin를 기동하면, 동작을 정지합니다.install목표. "plugin Management" 태그가 빌드 동작을 변경하는 이유는 무엇입니까?아니면 다른 목표나 옵션을 사용해야 할까요?

아직 추가가 필요합니다.

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

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

Maven 문서:

plugin Management :는 사이드 플러그인에 따라 표시되는 요소입니다.플러그인 관리에는 이 특정 프로젝트 빌드에 대한 플러그인 정보를 구성하는 것이 아니라 이 프로젝트 빌드에서 상속되는 프로젝트 빌드를 구성하는 것을 목적으로 한다는 점을 제외하고는 거의 동일한 방식으로 플러그인 요소가 포함됩니다.다만, 이 설정에서는, 자식의 플러그 인 요소내에서 실제로 참조되고 있는 플러그 인만을 설정합니다.하위 사용자는 pluginManagement 정의를 재정의할 수 있습니다.

의 차이점<pluginManagement/>그리고.<plugins/>그거는<plugin/>아래:

  • <pluginManagement/>는 빌드의 모듈에 의해 상속되는 플러그인의 설정을 정의합니다.이것은 부모 폼 파일을 가지고 있는 경우에 매우 적합합니다.

  • <plugins/>는 플러그인의 실제 호출 섹션입니다.이것은, 로부터 계승될 수도 있고, 그렇지 않을 수도 있습니다.<pluginManagement/>.

필요 없습니다.<pluginManagement/>부모 POM이 아닌 경우 프로젝트 내에서도 마찬가지입니다.단, 부모 폼일 경우 자녀의 폼에는 다음과 같은 선언이 필요합니다.

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

설정을 정의하고 있지 않은 것에 주의해 주세요.하위 프로젝트의 필요에 따라 호출을 추가로 조정해야 하는 경우를 제외하고 상위 프로젝트의 호출을 상속할 수 있습니다.

상세한 것에 대하여는, 다음의 항목을 참조하십시오.

사용하다pluginManagement에 있어서parent pom만일의 경우에 대비해서 설정하다child pom사용하려고 하지만 모든 하위 플러그인이 사용하려고 하는 것은 아닙니다.예를 들어 다음과 같습니다.super pom에 maven Javadoc 플러그인의 몇 가지 옵션을 나타냅니다.

각자가 아니다child pom자바독을 사용하는 경우가 있기 때문에 디폴트를 정의합니다.pluginManagement부분.Javadoc 플러그인을 사용하려는 자 pom은 플러그인 섹션을 정의하기만 하면 이 설정은 에서 상속됩니다.pluginManagementparent pom.

plugin Management :는 사이드 플러그인에 따라 표시되는 요소입니다.플러그인 관리에는 이 특정 프로젝트 빌드에 대한 플러그인 정보를 구성하는 것이 아니라 이 프로젝트 빌드에서 상속되는 프로젝트 빌드를 구성하는 것을 목적으로 한다는 점을 제외하고는 거의 동일한 방식으로 플러그인 요소가 포함됩니다.다만, 이 설정에서는, 자식의 플러그 인 요소내에서 실제로 참조되고 있는 플러그 인만을 설정합니다.하위 사용자는 pluginManagement 정의를 재정의할 수 있습니다.

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

복사원:

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

제가했다면, 저는 수 거예요.<pluginManagement><dependencyManagement>둘 다 부모와 그 하위 그룹 간에 구성만 공유하기 위해 사용됩니다.

이를 위해 상위 프로젝트에서 의존관계 및 플러그인의 공통 구성을 정의하고 이를 사용하려면 하위 모듈에서 종속성/플러그인만 선언하면 됩니다(버전 또는 실행, 목표 등).단, 서브모듈의 설정을 덮어쓰는 것을 막을 수는 없습니다.

로 ★★★★★★★★★★★★★★★★★★」<dependencies> ★★★★★★★★★★★★★★★★★」<plugins>는 설정과 함께 상속되므로 서브레벨에서 다시 선언하지 마십시오.그렇지 않으면 경합이 발생할 수 있습니다.

그래요?

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