我遵循了JPA modelgen 指南,并且能够生成所需的规范元模型。通过此pom设置:
<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>
生成的源已在指定目录中正确创建,我必须手动将其指定为eclipse项目类路径中的源才能使用它。当我触发Maven时,日志显示cannot find symbol或,duplicate class并且我仍然可以成功构建。所以我的问题是,在创建元模型时这种预期/正确的行为吗?还是我错过了cofig中的某些内容?谢谢
cannot find symbol
duplicate class
我也在使用JPA Metamodel Generator,但我没有您描述的问题,也许我的配置可以帮上忙,我看到了一些区别,第一个是 maven- processor-plugin
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>
如您所见,我必须添加hibernate-jpamodelgen作为依赖项和处理器属性。
hibernate-jpamodelgen
我不确定是否build-helper-maven- plugin有必要将生成的源目录添加到源路径。我没有使用它,但它对我有用,但这也许是因为我使用的是生成源的默认输出路径。
build-helper-maven- plugin