исполнение плагина yuicompressor не распространяется на m2e - PullRequest
3 голосов
/ 15 мая 2011

После долгих поисков компрессора JavaScript, который я мог использовать в Maven, я наконец нашел один:

        <plugin>
            <groupId>net.alchim31.maven</groupId>
            <artifactId>yuicompressor-maven-plugin</artifactId>
            <version>1.1</version>
            <executions>
                <execution>
                    <goals>
                        <goal>compress</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <jswarn>false</jswarn>
            </configuration>
        </plugin>

Теперь в последней версии m2e в Eclipse я получаю следующую ошибку:

Выполнение плагина не охватывается конфигурацией жизненного цикла: net.alchim31.maven: yuicompressor-maven-plugin: 1.1: сжатие (выполнение: по умолчанию, фаза: ресурсы процесса)

симпатичный. Я не понимаю - это просто плагин. Почему m2e не может просто вызвать какой-нибудь старый плагин, который у меня есть? Что не так с этим? Как мне это исправить?

Ответы [ 3 ]

4 голосов
/ 25 июня 2011

См. http://wiki.eclipse.org/M2E_plugin_execution_not_covered

Чтобы решить некоторые давние проблемы, m2e 1.0 требует четких инструкций что делать со всеми плагинами Maven связаны с «интересными» фазами (см. M2E интересные фазы жизненного цикла ) из Жизненный цикл проекта. Мы называем это инструкция "жизненный цикл сборки проекта отображение "или просто" отображение жизненного цикла " потому что они определяют, как карты m2e информация из файла проекта pom.xml в рабочий проект Eclipse конфигурация и поведение во время Eclipse buildpace build.

Отображение жизненного цикла сборки проекта Конфигурация может быть указана в проект pom.xml, предоставленный Eclipse плагины и есть также конфигурация по умолчанию для некоторых обычно используемые плагины Maven с м2е. Мы называем это "жизненный цикл Отображение источников метаданных ". m2e создать маркер ошибки, как показано ниже для всех плагин исполнения, которые не имеют отображение жизненного цикла в любом из сопоставление источников метаданных.

Plugin execution not covered by lifecycle configuration:
org.apache.maven.plugins:maven-antrun-plugin:1.3:run
   (execution: generate-sources-input, phase: generate-sources)

m2e соответствует плагину казни к действиям с использованием комбинация идентификатора группы плагинов, artifactId, диапазон версий и цель. Есть три основных действия, которые m2e можно поручить делать с плагином выполнение - игнорирование , выполнение и делегат проекта конфигуратор .

3 голосов
/ 22 августа 2012

Если вы будете искать, вы найдете множество ссылок, показывающих, как устранить эту ошибку. Тем не менее, я нашел способ на самом деле, чтобы Maven Project Builder по умолчанию выполнял эти плагины в Eclipse. Ключ должен изменить <ignore>, который вы найдете во многих предложениях, на <execute>. После добавления этого в мой pom у меня есть автоматическое агрегирование, сжатие и развертывание только от пользователя, сохраняющего ресурс javascript:

<pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.eclipse.m2e</groupId>
                <artifactId>lifecycle-mapping</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <lifecycleMappingMetadata>
                        <pluginExecutions>
                            <pluginExecution>
                                <pluginExecutionFilter>
                                    <groupId>
                                        net.alchim31.maven
                                    </groupId>
                                    <artifactId>
                                        yuicompressor-maven-plugin
                                    </artifactId>
                                    <versionRange>
                                        [1.1,)
                                    </versionRange>
                                    <goals>
                                        <goal>compress</goal>
                                    </goals>
                                </pluginExecutionFilter>
                                <action>
                                    <execute></execute>
                                </action>
                            </pluginExecution>
                        </pluginExecutions>
                    </lifecycleMappingMetadata>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
1 голос
/ 15 мая 2011

Может быть, вы должны указать идентификатор и фазу?

<plugin>
    <groupId>net.alchim31.maven</groupId>
    <artifactId>yuicompressor-maven-plugin</artifactId>
    <version>1.1</version>
    <executions>
        <execution>
            <id>compressyui</id>
            <phase>process-resources</phase>
            <goals>
                <goal>compress</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <jswarn>false</jswarn>
    </configuration>
</plugin>

По крайней мере, я не получаю это сообщение с этой конфигурацией.

...