Ошибка плагина: выполнение не охватывается конфигурацией жизненного цикла - PullRequest
16 голосов
/ 12 сентября 2011

Я пытаюсь использовать плагин maven-warpath-plugin , доступный здесь . Но в моем файле pom.xml постоянно появляется сообщение:

Выполнение плагина не охватывается конфигурацией жизненного цикла: org.appfuse.plugins: maven-warpath-plugin: 2.1.0: add-classes (выполнение: по умолчанию, фаза: generate-sources)

Как мне решить это? Вот мой фрагмент pom.xml для плагина:

<plugin>
    <groupId>org.appfuse.plugins</groupId>
    <artifactId>maven-warpath-plugin</artifactId>
    <version>2.1.0</version>
    <extensions>true</extensions>
    <executions>
        <execution>
            <goals>
                <goal>add-classes</goal>
            </goals>
        </execution>
    </executions>
</plugin>

Eclipse предлагает мне подсказку quickfox, чтобы "открыть новые коннекторы m2e", чтобы устранить эту ошибку. Я установил большинство доступных разъемов, которые, кажется, применяются, но ошибка все еще там. Любые идеи, как я мог бы сделать эту работу?

Ответы [ 2 ]

30 голосов
/ 12 сентября 2011

Это новое поведение m2e (которое заменило старый плагин m2eclipse). Чтобы указать, что eclipse должен делать с плагином, вы должны настроить отображение жизненного цикла сборки в pom.xml проекта - или установить соединитель (который решает, должен ли плагин выполняться в сборке eclipse или нет), если он существует.

Поскольку для maven-warpath-plugin, похоже, нет соединителя, вам нужно определить поведение в pom. Для этого вы можете использовать второе быстрое исправление затмения ( Постоянно помечать целевые надстройки в pom.xml как игнорируемые в сборке eclipse ). Это добавит следующий раздел к вашему пом:

<build>
    ......
    <pluginManagement>
        <plugins>
            <!--This plugin's configuration is used to store Eclipse m2e settings 
                only. It has no influence on the Maven build itself. -->
            <plugin>
                <groupId>org.eclipse.m2e</groupId>
                <artifactId>lifecycle-mapping</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <lifecycleMappingMetadata>
                        <pluginExecutions>
                            <pluginExecution>
                                <pluginExecutionFilter>
                                    <groupId>
                                        org.appfuse.plugins
                                    </groupId>
                                    <artifactId>
                                        maven-warpath-plugin
                                    </artifactId>
                                    <versionRange>
                                        [2.1.0,)
                                    </versionRange>
                                    <goals>
                                        <goal>add-classes</goal>
                                    </goals>
                                </pluginExecutionFilter>
                                <action>
                                    <ignore></ignore>
                                </action>
                            </pluginExecution>
                        </pluginExecutions>
                    </lifecycleMappingMetadata>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
</build>

Вы можете изменить действие <ignore> на <execute>, если хотите обрабатывать плагин в каждой сборке затмения (на import, clean, ...).

Конфигурация плагина специфична для затмения и не делает pom.xml более привлекательным - но, по крайней мере, он не влияет на сборку Maven ....

...