2016-04-14 51 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>