Я использую плагин 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 добавить эту папку в путь к классам, но я бы предпочел автоматическое решение.
<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. Таким образом, вы в основном просто установить разъем XMLBeans из здесь.
Я использовал это для создания сгенерированного кода. Обязательно привяжите плагин к фазе после генерации кода или если используете ту же фазу, что эта конфигурация плагина появляется после конфигурации 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>