Ich habe ein Hibernate 5 Projekt, das perfekt auf Java 8 baut und läuft. Ich habe versucht, es auf JDK 9 ea Build 171 zu testen. Da es ein riesiges Projekt ist und andere Abhängigkeiten haben musste java.xml.bind
Modul an die JVM-Konfiguration für Tests hinzufügen:Hibernate 5 Problem mit JDK 9
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</version>
<configuration>
<argLine>--add-modules java.xml.bind</argLine>
</configuration>
</plugin>
Es andere Fragen waren, die ich lösen konnte, aber wenn aggregierte Modul java.se.ee verwendet wird (wie empfohlen):
<argLine>--add-modules java.se.ee</argLine>
ich habe ein Ausnahme:
java.lang.NoClassDefFoundError: javax/transaction/SystemException
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:374)
at org.jboss.logging.Logger$1.run(Logger.java:2554)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at org.jboss.logging.Logger.getMessageLogger(Logger.java:2529)
Ich konnte nicht einmal verstehen, warum es passiert ist, weil JTA-Bibliothek (mit Klasse) im Klassenpfad ist, wenn Tests ausgeführt wurden.
Irgendwelche Vorschläge, wie Sie das beheben können?
JDK 9 ist noch nicht stabil, und baut dafür sind nicht garantiert. Tatsächlich hatten sie eine automatische Erstellung unter JDK 9 und deaktivierten sie, weil die API noch nicht fertig war und sie nur Fehler in den E-Mails spammte. – coladict