Я пытался обновить приложение JHipster 5 для использования Java 10, но не могу заставить его скомпилировать и обработать статические метамодели JPA с помощью Maven.
Видимо maven-compiler-plugin
не вызывает hibernate-jpamodelgen
для создания статических метамоделей JPA.
Для обновления проекта у меня:
- установлен Oracle JDK 10.0.1
- переключил мой pom.xml до
<java.version>10</java.version>
обновлен плагин maven-compiler-plugin для добавления модуля java.xml.bind
(поскольку он не включен по умолчанию в Java 10) следующим образом:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<!-- fork is needed so compiler args can be used -->
<fork>true</fork>
<compilerArgs>
<arg>-J--add-modules</arg>
<arg>-Jjava.xml.bind</arg>
</compilerArgs>
<annotationProcessorPaths>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${mapstruct.version}</version>
</path>
<!-- For JPA static metamodel generation -->
<path>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-jpamodelgen</artifactId>
<version>${hibernate.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
При этом я получаю ошибку компиляции при запуске ./mvnw clean compile
без более подробного сообщения об ошибке.
Если я удаляю тег <compilerArgs>
из pom.xml и запускаю егоПолученная команда: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
Я следовал приведенным инструкциям по обновлению здесь
Кроме того, я сделал этот пример проекта доступным на GitHub
Это - изменения коммита, когда я обновился до Java 10