Добавьте классы XMLBeans в путь к классам в Eclipse, используя Maven

1

Я использую плагин XMLBeans Maven для создания классов на основе XSD файла. Я могу писать код, используя мои сгенерированные классы, а Eclipse показывает target/generated-sources/xmlbeans в качестве исходной папки. Однако, когда я пытаюсь запустить свой тестовый код, я получаю классическую ошибку:

java.lang.ClassNotFoundException: schemaorg_apache_xmlbeans.system.sCFA0DE5D65ADE16E20A85EAFD5A886E4.TypeSystemHolder

Если я посмотрю в своей папке проекта, я могу увидеть этот файл класса в папке target\generated-classes\xmlbeans\schemaorg_apache_xmlbeans\system\sCFA0DE5D65ADE16E20A85EAFD5A886E4.

Могу ли я внести изменения в мой файл POM, чтобы Eclipse знал, где найти эти классы? Я предполагаю, что существует несколько способов исправления этой проблемы вручную и сказать Eclipse добавить эту папку в путь к классам, но я бы предпочел автоматическое решение.

POM-фрагмент

  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>xmlbeans-maven-plugin</artifactId>
    <version>2.3.3</version>
    <executions>
      <execution>
        <goals>
          <goal>xmlbeans</goal>
        </goals>
      </execution>
    </executions>
    <inherited>true</inherited>
    <configuration>
      <schemaDirectory>src/main/xsd</schemaDirectory>
      <download>true</download>
      <javaSource>1.5</javaSource>
    </configuration>
  </plugin>
Теги:
maven
m2e
xmlbeans-maven-plugin

2 ответа

1

Нашел рабочее решение для меня - эти ребята написали коннектор maven. Таким образом, вы в основном просто установить разъем XMLBeans из здесь.

1

Я использовал это для создания сгенерированного кода. Обязательно привяжите плагин к фазе после генерации кода или если используете ту же фазу, что эта конфигурация плагина появляется после конфигурации xmlbeans-maven-plugin.

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>build-helper-maven-plugin</artifactId>
  <version>${build.helper.maven.plugin.version}</version>
  <executions>
    <execution>
      <id>add-source</id>
      <phase>generate-sources</phase>
      <goals>
        <goal>add-source</goal>
      </goals>
      <configuration>
        <sources>
          <source>${xmlbeans.sourceGenerationDirectory}</source>
        </sources>
      </configuration>
    </execution>
  </executions>
</plugin>
  • 0
    Спасибо за ответ. Я нашел похожее решение несколько минут назад, попробовал, и оно, похоже, сработало. Но теперь я получаю противоречивые результаты (т.е. удаление этого плагина и выполнение чистой / компиляции все еще приводит к коду, который работает в Eclipse). Как только я убедлюсь, что это решит проблему, я отмечу как ответ.
  • 0
    В Eclipse вам может потребоваться выполнить Maven -> Обновить проект между изменениями POM, чтобы Eclipse действительно распознал ваши изменения. Что произойдет, если вы запустите Maven из командной строки, с плагином и без него?
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню