Проект JHipster5 со статической метамоделью JPA на Java 10 - PullRequest
0 голосов
/ 25 мая 2018

Я пытался обновить приложение 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

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

У меня была такая же проблема.Используя Java 10, SpringBoot 2.0.3, Hibernate 5.3.1.

В Gradle у меня сработало добавление javax.xml.bind в annotationProcessor:

annotationProcessor group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.0'

annotationProcessor group: 'org.hibernate', name: 'hibernate-jpamodelgen', version: '5.3.1.Final'

Втаким образом, hibernate-jpamodelgen больше не будет жаловаться на свою отсутствующую javax.xml.bind зависимость, так как он в той же группе, что и он (annotationProcessor)

0 голосов
/ 28 мая 2018

Чтобы зарегистрировать решение, желающее помочь другим, вот что решило эту проблему:

Оказалось, что это была какая-то проблема совместимости Java 9 с hibernate-jpamodelgen@5.2.16.Final.Как только я обновился до версии Hibernate 5.3.1.Final, он снова начал компилироваться.

Мне также пришлось решить зависимости JAXB, следуя этому ответу .

...