Как получить источники, созданные 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)