我尝试将使用 Hibernate 的项目“升级”到 Java 9,但在使模块正常运行时遇到问题。
我的相关部分module-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.Alpha1
-
org.hibernate:hibernate-core
, 5.2.12.最终
-
javax.transaction:javax.transaction-api
, 1.2
问题是,如果我运行该程序,我会得到一个NoClassDefFoundError
for javax.transaction.SystemException
。我对此进行了调查,很明显,我的模块缺少一个requires on javax.transaction.
所以我添加了一个模块依赖javax.transaction-api
。然后我继续尝试再次运行该程序 - 现在我失踪了java.sql.SQLException
.
这就是我遇到的问题:如果我添加对模块的依赖java.sql,其中包含此类,我最终遇到了冲突:
模块读取包javax.transaction.xa
来自两者java.sql
and javax.transaction.api
java.sql
and javax.transaction.api
包含不同的包,并且有一个共同点(javax.transaction.xa
), 但我需要所有这些.
我该如何处理这个问题?我缺少一些简单的东西吗?
使用 1.3 版本而不是 1.2javax.transaction-api
,在这个版本中javax.transaction.xa
已被删除。
Maven 依赖:
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>javax.transaction-api</artifactId>
<version>1.3</version>
</dependency>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)