2016-04-14 14 views
1

Ich versuche JAXB für XML-Mapping in einem Maven-Projekt. Ich habe JAXB jar in ein separates Projekt eingefügt und es als Abhängigkeit zu meinem Hauptprojekt hinzugefügt. Ich benutze Eclipse.Generierte Klassen von JAXB sind nicht erkennbar

Nun ist die Funktionalität von JAXB scheint in Ordnung und von einem XSD-Schema werden in Ziel/erzeugt-Quellen/xjc Ordner mehrere Java-Klassen generiert. Das Problem ist, dass Eclipse diese Klassen im Unit-Test im Hauptprojekt nicht auflösen kann. Ich importiere sogar manuell diesen Paketnamen, aber die Klassennamen sind nicht auflösbar. Gibt es etwas, was mir fehlt?

+1

Ist das Verzeichnis '' Soll/erzeugt-Quellen/xjc'' eineine Java-Quellordner in Ihrem Projekt? – f1sh

+0

@ f1sh - Der jaxb hat eine eigene Projektstruktur und das Ziel/generated-sources/xjc ist der Standard-Ort, an dem JAXB all diese Klassen einsetzt. Muss ich ihn explizit als Quellordner markieren? Und wie? Außerdem bemerke ich, dass das Glas aus meinem jaxb-jar-Projekt nicht im lokalen .m2 \ repository ist, auch wenn ich das maven install auf ihm laufen lasse. Könnte das das Problem sein? – dunfa

+0

Da Sie Maven verwenden, verwenden Sie nicht [JAXB-2 Maven-Plugin] (http://www.mojohaus.org/jaxb2-maven-plugin/Documentation/v2.2/example_xjc_basic.html), anstatt den Jaxb zu verwenden Glas in einem separaten Projekt? – vl4d1m1r4

Antwort

2

Sie können die generierten Quelldateien in den Build-Pfad durch Rechtsklick hinzufügen -> Build Path -> Verwendung als Quellordner auf den Ordner mit generierten Ressourcen.

Wie in den Kommentaren erwähnt, sollte das Plugin, das Sie verwenden, dies automatisch für Sie tun. Im Fall, dass es nicht können Sie die build-helper-maven-plugin (related question) mit folgenden Konfiguration verwenden:

<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> 
Verwandte Themen