Вопрос по java, maven – Maven: Что такое плагин управления?

217

Это фрагмент моего файла POM.

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

Я успешно использую это с командой

<code>mvn install
</code>

Но когда я пытаюсь включить его в «pluginManagement» тег,maven-dependency-plugin перестает работать, когда я запускаюinstall Цель. Почему & quot; pluginManagement & quot; тег изменить поведение сборки? Или я должен использовать другую цель или вариант?

Ваш Ответ

4   ответа
32

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

Error: User Rate Limit Exceededstackoverflow.com/questions/8706017/… Andrea Borgogelli Avveduti
3

is an element that is seen along side plugins. Plugin Management contains plugin elements in much the same way, except that rather than configuring plugin information for this particular project build, it is intended to configure project builds that inherit from this one. However, this only configures plugins that are actually referenced within the plugins element in the children. The children have every right to override definitions.

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

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

Maven2 - проблема с и родительско-дочерними отношениями

255

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

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

Из документации Maven:

pluginManagement: is an element that is seen along side plugins. Plugin Management contains plugin elements in much the same way, except that rather than configuring plugin information for this particular project build, it is intended to configure project builds that inherit from this one. However, this only configures plugins that are actually referenced within the plugins element in the children. The children have every right to override pluginManagement definitions.

208

<pluginManagement/> а также<plugins/> это<plugin/> под:

<pluginManagement/> defines the settings for plugins that will be inherited by modules in your build. This is great for cases where you have a parent pom file.

<plugins/> is an actual invocation of the plugin. It may or may not be inherited from a <pluginManagement/>.

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

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

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

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

The Maven pom.xml reference: Plugins

The Maven pom.xml reference: Plugin Management

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededstackoverflow.com/questions/8706017/… Andrea Borgogelli Avveduti
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded<dependency/>Error: User Rate Limit Exceeded<dependencyManagement/>Error: User Rate Limit Exceeded<dependencyManagement/>Error: User Rate Limit Exceeded<dependencies/>Error: User Rate Limit ExceededgroupIdError: User Rate Limit ExceededartifactId.

Похожие вопросы