Java 9、Hibernate和Java.sql/javax.transaction

Java 9、Hibernate和Java.sql/javax.transaction,java,hibernate,maven,jdbc,java-9,Java,Hibernate,Maven,Jdbc,Java 9,我曾尝试使用Hibernate将一个项目“升级”到Java9,但在使模块正常工作时遇到了问题 我的模块info.java的相关部分如下所示: module test { ... requires java.base; requires hibernate.core; requires javax.transaction; requires java.sql; } 我的POM中的相关依赖项是 org.jboss.spec.javax.transac

我曾尝试使用Hibernate将一个项目“升级”到Java9,但在使模块正常工作时遇到了问题

我的
模块info.java
的相关部分如下所示:

module test {

    ...

    requires java.base;
    requires hibernate.core;
    requires javax.transaction;
    requires java.sql;

}
我的POM中的相关依赖项是

  • org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec
    ,2.0.0.1
  • org.hibernate:hibernate核心
    ,5.2.12.Final
  • javax.transaction:javax.transaction api
    ,1.2
问题是,如果我运行程序,我会得到
javax.transaction.SystemException
NoClassDefFoundError
。我调查了一下,很明显

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

以下是我遇到的问题:如果我(包含该类)最终导致冲突:

模块从
java.sql
javax.transaction.api
读取包
javax.transaction.xa

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


我该怎么处理?是否缺少一些简单的东西?

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

Maven依赖项:

<dependency>
    <groupId>javax.transaction</groupId>
    <artifactId>javax.transaction-api</artifactId>
    <version>1.3</version>
</dependency>

javax.transaction
javax.transaction-api
1.3

似乎与a类似,并且有一个JSR 907的MR正在进行()以修复此问题。一旦修复了这个问题,我就希望JTAAPI工件的新版本能够以正确的模块名发布,并且只导出javax.transaction。