Как получить источники, созданные JAXB, на пути сборки Eclipse в разделе m2e/Indigo?
В разделе Helios/m2eclipse, когда я сгенерировал источники jaxb, они будут помещены в исходный путь Eclipse, когда я выполнил "Обновить конфигурацию проекта".
Это не происходит с Indigo/m2e (начальный выпуск от 22 июня 2011 года). Что мне нужно сделать, чтобы исправить это?
Я использую стандартный maven-jaxb2-plugin, версия 0.75.
Ответы
Ответ 1
В Eclipse перейдите к разделу "Установка нового программного обеспечения": добавьте сайт программного обеспечения: http://bitstrings.github.com/m2e-connectors-p2/releases/
Выберите "m2e connector для jaxb2"
Как только вы установите этот плагин, плагин jaxb2 должен правильно интегрироваться с новой версией m2e.
Эта информация от: https://bugs.eclipse.org/bugs/show_bug.cgi?id=350299
Ответ 2
Ну, вам нужно щелкнуть правой кнопкой мыши по объекту target/generated-sources/xjc и выбрать что-то вроде "Путь сборки → Использовать в качестве исходной папки"
Ответ 3
В ожидании исправления этой проблемы я использую следующее временное решение:
У нас есть jaxb-plugin и сгенерированные классы в отдельном модуле maven. В eclipse я могу "отключить природу Maven" только на этом модуле. Затем я могу использовать Indigo с m2eclipse на остальной части нашего большого проекта maven, и он будет зависеть от jar для модуля jaxb (должен быть построен из командной строки). Это хорошо работает для меня, так как наш проект был организован таким образом.
Ответ 4
В качестве альтернативного обходного пути, если вы не можете использовать соединитель m2e, вы можете добавить сгенерированные источники в путь сборки с помощью build-helper-maven-plugin:
<build>
...
<plugins>
...
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>target/generated-sources/xmlbeans</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
...
</plugins>
...
</build>
Ответ 5
Для тех, кто страдает с помощью maven-jaxb2-plugin и Eclipse, не имеющих источника. Автор переключился с Солнца на артефакты JAXB Glassfish, и дерево зависимостей изменилось. Раньше многие JAR, затененные в jaxb-xjc
без транзитивных. Теперь это было удалено, и предыдущая транзитивная зависимость до tools.jar
нарушает выполнение Eclipse. Запустите Eclipse с помощью JDK VM, и он будет работать. (Протестировано последнее Maven 3.3.9, Maven JAXB2 Plugin 0.13.1, последний соединитель JAXB2 m2e и Eclipse Mars.2)