2

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

2 回答 2

2

我用它来合并生成的代码。确保在代码生成发生后将插件绑定到一个阶段,或者如果使用相同的阶段,则此插件配置出现在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>
于 2014-03-25T16:54:01.090 回答
1

为我找到了一个可行的解决方案——这些人写了一个 Maven 连接器。所以您基本上只需要从这里安装 XMLBeans 连接器。

于 2015-05-26T12:59:13.483 回答