使用Maven将XMLBeans类添加到Eclipse中的类路径中

时间:2014-03-25 16:17:49

标签: java eclipse maven m2e xmlbeans-maven-plugin

我使用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>

2 个答案:

答案 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连接器。