[Java] Maven: Что такое pluginManagement?



Answers

Разница между <pluginManagement/> и <plugins/> заключается в следующем:

  • <pluginManagement/> определяет параметры для плагинов, которые будут унаследованы модулями в вашей сборке. Это отлично подходит для случаев, когда у вас есть родительский файл pom.

  • <plugins/> является фактическим вызовом плагина. Он может быть или не быть унаследован от <pluginManagement/> .

Вам не нужно иметь <pluginManagement/> в вашем проекте, если это не родительский POM. Однако, если это родительский pom, то в дочернем помпе вам нужно иметь объявление вроде:

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

Обратите внимание, как вы не определяете какую-либо конфигурацию. Вы можете наследовать его от родителя, если только вам не потребуется дополнительно настроить ваш вызов в соответствии с потребностями дочернего проекта.

Для получения более подробной информации вы можете проверить:

Question

Это фрагмент моего файла 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" изменяет поведение сборки? Или я должен использовать другую цель или вариант?




pluginManagement: это элемент, который отображается вдоль боковых плагинов. Плагин управления содержит элементы плагина почти таким же образом, за исключением того, что вместо того, чтобы настраивать информацию плагина для этой конкретной сборки проекта, он предназначен для настройки сборных проектов, которые наследуются от этого. Тем не менее, это только настраивает плагины, которые на самом деле ссылаются на элемент плагинов в дочерних элементах. Дети имеют полное право переопределять определения pluginManagement.

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

Скопировано из:

Maven2 - проблема с подключением pluginManagement и parent-child






Links