我使用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>
答案 0 :(得分: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>
答案 1 :(得分:1)
为我找到了一个有效的解决方案 - these guys写了一个maven连接器。所以你基本上只需要从here安装XMLBeans连接器。