Проблемы при импорте проекта maven 2 с несколькими модулями в рабочую область Eclipse
Мне было интересно, если кто-то испытал ту же проблему, что и я, и может мне помочь. У меня есть проект Maven, который содержит 6 модулей. Некоторые из модулей зависят друг от друга. Проект написан на Java и построен на jars, wars и aar. Я пытался импортировать его в Eclipse с помощью плагина m2eclipse. Кажется, работает нормально, пока проект не будет построен. В процессе сборки я получаю сотни ошибок с жалобами на отсутствующие файлы Java, которые генерируются. Как я выяснил, eclipse не может распознать, что некоторые из сгенерированных пакетов должны интерпретироваться как исходный код. Я действительно не знаю, что с этим делать, так как я потратил много времени, пытаясь решить эту проблему. Проект строится нормально с командной строки. Моя цель - отладить весь проект на сервере Tomcat, поэтому я хочу использовать eclipse, поскольку он довольно хорошо интегрируется с Tomcat.
Любая помощь будет принята с благодарностью.
Спасибо!
3 ответа
Как описано в разделе Почему созданные исходные папки не добавляются в запись пути к классам в FAQ:
Плагины Maven, используемые для генерации исходного кода из ресурсов или других источников, могут регистрировать дополнительные исходные папки в проекте Maven во время сборки. Обычно такие плагины привязаны к фазе сборки ресурсов процесса (или ресурсов процесса тестирования) (например, плагинов jaxb, modello или xdoclet). Это означает, что для получения этих исходных папок для сгенерированных источников нам нужно запустить соответствующую фазу сборки Maven.
Не во всех проектах используются сгенерированные источники, поэтому из соображений производительности m2eclipse не выполняет никаких целей Maven по умолчанию при импорте проектов. Это можно изменить в настройках Maven в " Окно > Настройки... > Maven > Цели для запуска при импорте проекта " (например, вы можете указать фазу сборки "process-resources" или специальные плагины в этом поле).
В качестве альтернативы вы можете запустить действие " Maven > Обновить конфигурацию проекта " из всплывающего меню проекта, которое по умолчанию настроено на запуск "process-resources", и его также можно изменить на той же странице настроек.
Поэтому либо добавьте цель, к которой процесс создания источника привязан к списку целей, выполняемых при импорте, либо сгенерируйте источники, запустив maven и обновив конфигурацию проекта.
Используйте build-helper-maven-plugin (образец ниже), чтобы указать Eclipse добавить сгенерированную папку в путь сборки:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>target/generated-sources/cxf</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
Добавьте это в pom каждого проекта, который генерирует источники...
Попробуйте использовать mvn eclipse:eclipse
Под проектом, где у вас есть дополнительно сгенерированный источник. Когда это генерируется maven, оно обычно находится в целевой папке.
Therefor eclipse:eclipse
распознает это и добавит в качестве исходной папки.
Помните, чтобы обновить проект после этого.