2012-05-10 9 views
14

Ich folgte der JPA Modelgen guide und ich konnte das kanonische Metamodell erzeugen, das ich brauche. Mit diesem pom ein:JPA Hibernate Metamodel Generierung durch Maven

<plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
        <compilerArgument>-proc:none</compilerArgument> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.bsc.maven</groupId> 
       <artifactId>maven-processor-plugin</artifactId> 
       <version>2.0.6-redhat</version> 
       <executions> 
        <execution> 
         <id>process</id> 
         <goals> 
          <goal>process</goal> 
         </goals> 
         <phase>generate-sources</phase> 
         <configuration> 
          <outputDirectory>target/metamodel</outputDirectory> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>build-helper-maven-plugin</artifactId> 
       <version>1.3</version> 
       <executions> 
        <execution> 
         <id>add-source</id> 
         <phase>generate-sources</phase> 
         <goals> 
          <goal>add-source</goal> 
         </goals> 
         <configuration> 
          <sources> 
           <source>target/metamodel</source> 
          </sources> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 

Die erzeugte Quelle wird in dem angegebenen Verzeichnis ordnungsgemäß erstellt und ich muß manuell als Quelle in dem Eclipse-Projekt Klassenpfad angeben, es zu benutzen. Wenn ich einen Maven trigger die Protokolle zeigen cannot find symbol oder duplicate class und ich bekomme immer noch erfolgreich bauen. Also meine Frage ist, ist das erwartete/korrekte Verhalten beim Erstellen des Metamodells? oder habe ich etwas im cofig vermisst? Dank

+0

FIY, werfen Sie einen Blick auf [jpa-Metamodell-mit-Maven] (https://jinahaya.wordpress.com/2014/03/29/jpa-metamodel-with-maven/) –

Antwort

14

Ich bin auch Generator JPA Metamodell mit und ich habe nicht die Probleme, die Sie beschreiben, vielleicht kann meine Konfiguration helfen, ich einige Unterschiede zu sehen, die erste ist maven-processor-plugin

<plugin> 
    <groupId>org.bsc.maven</groupId> 
    <artifactId>maven-processor-plugin</artifactId> 
    <version>2.1.0</version> 
    <executions> 
    <execution> 
     <id>process</id> 
     <goals> 
     <goal>process</goal> 
     </goals> 
     <phase>generate-sources</phase> 
     <configuration> 
     <processors> 
      <processor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</processor> 
     </processors> 
     </configuration> 
    </execution> 
    </executions> 
    <dependencies> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-jpamodelgen</artifactId> 
     <!--version>1.2.0.Final</version--> 
     <version>4.3.4.Final</version> 
    </dependency> 
    </dependencies> 
</plugin> 

Wie Sie kann sehen, dass ich hibernate-jpamodelgen als Abhängigkeit und das Prozessorattribut hinzufügen musste.

Ich bin nicht sicher, ob build-helper-maven-plugin notwendig ist, um das Verzeichnis der generierten Quellen zu Ihrem Quellpfad hinzuzufügen. Ich benutze es nicht und es funktioniert für mich, aber vielleicht liegt es daran, dass ich den Standardausgabepfad für generierte Quellen verwende.