Как мне запустить Maven для компиляции цели в Eclipse? - программирование
Подтвердить что ты не робот

Как мне запустить Maven для компиляции цели в Eclipse?

У меня есть проект Maven с кодом JavaScript. В pom.xml есть специальный плагин компилятора javascript, связанный с целью компиляции. Поэтому, когда я печатаю "mvn compile", исходные файлы JavaScript в src/main/javascript скомпилированы (сжаты и запутаны) и сохранены в каталоге target/classes. В командной строке это отлично работает.

Но теперь я хочу сделать разработку проще, используя Eclipse с плагином m2eclipse. Я хочу, чтобы Eclipse вызывал цель компиляции всякий раз, когда я меняю файл JavaScript. Как я могу это сделать? Когда я сохраняю файл JavaScript, я просто вижу строку журнала "AUTO_BUILD" в консоли maven и ее.

В настройках проекта можно настроить отображение жизненного цикла. Но по какой-то причине я могу добавлять только пользовательские цели, чтобы "после очистки" и "на ресурсе изменился". Когда я добавляю цель "скомпилировать" к отображению жизненного цикла "измененный ресурс", файлы JavaScript скомпилируются при изменении ресурса. Поэтому я мог бы поместить свои файлы JavaScript в папку ресурсов, и это сработает, но это звучит довольно уродливо.

Он также работает, когда я говорю Eclipse "очистить" мой проект. Затем вызывается цель цели компиляции. Таким образом, функциональность есть все, что я просто хочу, чтобы она выполнялась при сохранении файла JavaScript. Это должно быть возможно каким-то образом или нет?

Любые подсказки?

4b9b3361

Ответ 1

В настройках проекта можно настроить отображение жизненного цикла. Но по какой-то причине я могу добавлять только пользовательские цели, чтобы "после очистки" и "на ресурсе изменился". Когда я добавляю цель "скомпилировать" к отображению жизненного цикла "измененный ресурс", файлы JavaScript скомпилируются при изменении ресурса. Поэтому я мог бы поместить свои файлы JavaScript в папку ресурсов, и это сработает, но это звучит довольно уродливо.

Как вы заметили, цели по умолчанию, выполняемые в инкрементальных строках в Eclipse, это process-resources и resources:testResources. Лично я не считаю уродливым поставить js файл под ресурсы, и я бы просто привязал плагин javascript к process-resources.

Он также работает, когда я говорю Eclipse "очистить" мой проект. Затем вызывается цель цели компиляции.

В полной версии (после очистки от Eclipse) запуск целей: process-test-resources, который на самом деле является фазой жизненного цикла сборки, которая включает фазу compile, поэтому compile вызывается при очистке вашего проекта от Eclipse. Но это не решает вашу проблему (запуск вашего плагина при сохранении).


Как я уже сказал, я просто поместил бы файл js в ресурсы. Но есть и другой вариант: добавление в проект другого Builder. Щелкните правой кнопкой мыши в вашем проекте, затем Свойствa > Строители > Создать > Maven Build и определите цель плагина как цель для запуска во время Автоматических целей сборки (измените или удалите другие цели в соответствии с вашими потребностями):

alt text http://img694.imageshack.us/img694/2382/screenshot003wo.png

Но я предпочитаю другой подход.

Ответ 2

так как ответ @pascal-thivent устарел (как упоминалось в комментариях) и намекнул @akostadinov https://www.eclipse.org/m2e/documentation/m2e-execution-not-covered.html:

Вы должны добавить действительное действие жизненного цикла maven

Пример для банки, которая автоматически развертывается локально maven install plugin:

<build>
    <!-- ... -->

    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.eclipse.m2e</groupId>
                <artifactId>lifecycle-mapping</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <lifecycleMappingMetadata>
                        <pluginExecutions>

                            <pluginExecution>
                                <pluginExecutionFilter>
                                    <groupId>org.apache.maven.plugins</groupId>
                                    <artifactId>maven-jar-plugin</artifactId>
                                    <versionRange>[2.0,)</versionRange>
                                    <goals>
                                        <goal>jar</goal>
                                    </goals>
                                </pluginExecutionFilter>
                                <action>
                                    <execute>
                                        <runOnConfiguration>true</runOnConfiguration>
                                        <runOnIncremental>true</runOnIncremental>
                                    </execute>
                                </action>
                            </pluginExecution>

                            <pluginExecution>
                                <pluginExecutionFilter>
                                    <groupId>org.apache.maven.plugins</groupId>
                                    <artifactId>maven-install-plugin</artifactId>
                                    <versionRange>[2.5.0,)</versionRange>
                                    <goals>
                                        <goal>install</goal>
                                    </goals>
                                </pluginExecutionFilter>
                                <action>
                                    <execute>
                                        <runOnConfiguration>true</runOnConfiguration>
                                        <runOnIncremental>true</runOnIncremental>
                                    </execute>
                                </action>
                            </pluginExecution>

                        </pluginExecutions>
                    </lifecycleMappingMetadata>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
</build>

Подсказка: относится к Maven Project Builder вызывается каждый раз при изменении исходного файла (GWT) и в качестве предупреждения: установка обычно включает тесты, если вы включили их в вашем обычном цикле сборки maven