Как можно получить сгенерированные JAXB источники на пути сборки Eclipse в m2e/Indigo?

В Helios/m2eclipse, когда я генерировал jaxb-источники, они помещались в исходный путь Eclipse, когда я выполнял "Обновление конфигурации проекта".

Этого не происходит с Indigo/m2e (первоначальный выпуск 22 июня 2011 г.). Что мне нужно сделать, чтобы это исправить?

Я использую стандартный maven-jaxb2-plugin, версия 0.75.

5 ответов

Решение

В Eclipse перейдите в раздел "Установка нового программного обеспечения" и добавьте сайт программного обеспечения: http://bitstrings.github.com/m2e-connectors-p2/releases/

Выберите "разъем m2e для jaxb2"

Как только вы установите этот плагин, плагин jaxb2 должен правильно интегрироваться с новой версией m2e.

Эта информация от: https://bugs.eclipse.org/bugs/show_bug.cgi?id=350299

Ну, вам нужно щелкнуть правой кнопкой мыши на "target/generate-sources/xjc" и выбрать что-то вроде "Build Path -> Use as source folder"

В качестве альтернативного обходного пути, если вы не можете заставить работать коннектор 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>

В ожидании исправления этой проблемы я использую следующий временный обходной путь:

У нас есть jaxb-плагин и сгенерированные классы в отдельном модуле maven. В Eclipse я могу "отключить Maven nature" только на этом модуле. Затем я могу использовать Indigo с m2eclipse для остальной части нашего большого проекта maven, и это будет зависеть от jar для модуля jaxb (должен быть собран из командной строки). Это хорошо работает для меня, так как наш проект уже был организован таким образом.

Для тех, кто страдает от maven-jaxb2-plugin и Eclipse, не имеющих прикрепленного источника. Автор переключился с JAXB-артефактов на Glassfish JAXB, и дерево зависимостей изменилось. Ранее многие банки были затенены jaxb-xjc без переходных. Теперь это было удалено и предыдущая переходная зависимость tools.jar нарушает выполнение Eclipse. Запустите Eclipse с виртуальной машиной JDK, и она будет работать. (Протестировано последнее Maven 3.3.9, Maven JAXB2 Plugin 0.13.1, недавний m2e разъем JAXB2 и Eclipse Mars.2)

Другие вопросы по тегам