2012-05-10 12 views
14

Ho seguito il JFA modelgen guide e sono stato in grado di generare il metamodello canonico di cui ho bisogno. Con questo pom istituito:JPA Hibernate Generazione Metamodel attraverso 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> 

La sorgente generato sia correttamente creato nella directory specificata e devo specificare manualmente come fonte nel percorso di classe progetto Eclipse di usarlo. Quando faccio scattare un errore, i log mostrano cannot find symbol o duplicate class e riesco comunque a ottenere una build di successo. Quindi la mia domanda è: questo comportamento atteso/corretto nella creazione del metamodello? o mi sono perso qualcosa nel cofig? Grazie

+0

FIY, dai un'occhiata a [jpa-metamodel-with-maven] (https://jinahya.wordpress.com/2014/03/29/jpa-metamodel-with-maven/) –

risposta

14

sto utilizzando anche generatore di APP Metamodel e non ho i problemi che lei descrive, forse la mia configurazione può aiutare, vedo alcune differenze, il primo è 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> 

Come si posso vedere che ho dovuto aggiungere hibernate-jpamodelgen come dipendenza e l'attributo del processore.

Non sono sicuro che se build-helper-maven-plugin sia necessario aggiungere la directory delle origini generate al percorso di origine. Non lo sto usando e funziona per me, ma forse è perché sto usando il percorso di output predefinito per le sorgenti generate.

Problemi correlati