Генерация метамодели JPA Hibernate через maven
Я выполнил руководство 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
, и я все равно получаю успешную сборку. Итак, мой вопрос: это ожидаемое/правильное поведение при создании метамодели? или я что-то пропустил в кофиге? Благодаря
Ответы
Ответ 1
Я также использую генератор JPA Metamodel, и у меня нет проблем, которые вы описываете, может быть, моя конфигурация может помочь, я вижу некоторые отличия, первый - 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
в качестве зависимости и атрибута процессора.
Я не уверен, что если build-helper-maven-plugin
необходимо добавить каталог сгенерированных источников в исходный путь. Я не использую его, и он работает для меня, но, возможно, потому, что я использую выходной путь по умолчанию для сгенерированных источников.