Java 9,Hibernate和java.sql / javax.transaction

我试图使用Hibernate将项目“升级”到Java 9,但是我在使模块正常运行时遇到了问题。

我的module-info.java的相关部分如下所示:

 module test { ... requires java.base; requires hibernate.core; requires java.naming; } 

以及我POM中的相关依赖项

  • javax.xml.bind:jaxb-api ,2.3.0
  • org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec ,2.0.0.Alpha1
  • org.hibernate:hibernate-core ,5.2.12.Final
  • javax.transaction:javax.transaction-api ,1.2

问题是,如果我运行程序,我得到javax/transaction/SystemExceptionNoClassDefFoundError 。 我调查了这个,很明显, 我的模块缺少javax.transactionrequires

所以我在javax.transaction-api上添加了一个模块依赖。 然后我继续尝试再次运行程序 – 现在我缺少java/sql/SQLException

以下是我遇到的问题:如果我在包含此类的模块java.sql上添加依赖项,我最终会遇到冲突:

module从java.sqljavax.transaction.api读取包javax.transaction.api

java.sqljavax.transaction.api包含不同的包,并且有一个共同的( javax.transaction.xa ), 但我需要所有这些包

我该如何处理? 我缺少一些简单的东西吗?

使用版本1.3而不是javax.transaction-api的1.2,在此版本中已删除javax.transaction.xa

Maven依赖:

  javax.transaction javax.transaction-api 1.3