2016-04-14 25 views
1

我正在尝试用于Maven项目中的xml映射的JAXB。我把JAXB jar放在一个单独的项目中,并把它作为依赖添加到我的主项目中。我正在使用Eclipse。由JAXB生成的类是不可识别的

现在JAXB的功能看起来很好,并且从一些XSD模式在target/generated-sources/xjc文件夹中生成了几个Java类。问题是Eclipse无法解决主项目中单元测试中的这些类。我甚至手动导入这些包名,但类名仍然不可解析。有什么我失踪?

+1

是目录''目标/生成来源/ xjc''一个java源文件夹中的项目吗? – f1sh

+0

@ f1sh - jaxb拥有自己的项目结构,而target/generated-sources/xjc是JAXB将所有这些类放入的默认位置。我是否必须将其明确标记为某个源文件夹?如何?另外我注意到,我的jaxb-jar项目中的jar不在本地的.m2 \ repository中,即使我在其上运行maven安装。这可能是问题吗? – dunfa

+0

由于您使用maven为什么不使用[JAXB-2 Maven插件](http://www.mojohaus.org/jaxb2-maven-plugin/Documentation/v2.2/example_xjc_basic.html)而不是使用jaxb jar在单独的项目? – vl4d1m1r4

回答

2

您可以将生成的源文件添加到生成路径,方法是右键单击 - >生成路径 - >用作具有生成资源的文件夹上的源文件夹。

正如评论中所述,您使用的插件应该会自动为您执行此操作。如果它没有可以使用build-helper-maven-pluginrelated question)具有以下配置:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>build-helper-maven-plugin</artifactId> 
    <version>1.7</version> 
    <executions> 
    <execution> 
     <id>add-source</id> 
     <phase>generate-sources</phase> 
     <goals> 
     <goal>add-source</goal> 
     </goals> 
     <configuration> 
     <sources> 
      <source>target/generated-sources/xjc</source> 
     </sources> 
     </configuration> 
    </execution> 
    </executions> 
</plugin>