2012-05-10 12 views
14

Seguí el modelo de JPA guide y pude generar el metamodelo canónico que necesito. Con este pom estableció:Generación de metamodelo de Hibernate de JPA a través de 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 fuente generada se crea correctamente en el directorio especificado y tengo que especificar manualmente como una fuente en la ruta de clase del proyecto Eclipse para usarlo. Cuando disparo un maven, los registros muestran cannot find symbol o duplicate class y sigo teniendo éxito. Entonces mi pregunta es, ¿es este comportamiento esperado/correcto al crear el metamodelo? o perdí algo en el cofig? Gracias

+0

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

Respuesta

14

También estoy usando generador de APP Metamodel y no tiene los problemas que usted describe, tal vez mi configuración puede ayudar, veo algunas diferencias, la primera es 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> 

Como puede ver que tuve que agregar hibernate-jpamodelgen como dependencia y el atributo del procesador.

No estoy seguro de si es necesario build-helper-maven-plugin para agregar el directorio de las fuentes generadas a su ruta de origen. No lo estoy usando y funciona para mí, pero tal vez es porque estoy usando la ruta de salida predeterminada para las fuentes generadas.

Cuestiones relacionadas