Ошибка подключаемого модуля: выполнение, не охватываемое конфигурацией жизненного цикла

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

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

Как мне это решить? Вот мой фрагмент 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 для "открытия новых соединителей m2" для устранения этой ошибки. Я установил большинство доступных разъемов, которые, похоже, применяются, но ошибка все еще существует. Любые идеи, как я мог бы сделать эту работу?

Ответы

Ответ 1

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

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

<build>
    ......
    <pluginManagement>
        <plugins>
            <!--This plugin 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>, если вы хотите обработать плагин в каждой сборке eclipse (в import, clean,...).

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