Hibernate 5.2:Java 9中的java.transaction.xa包冲突

时间:2017-10-04 23:53:49

标签: java hibernate java-9

我正在尝试熟悉Java 9的模块系统,并且遇到了一些我无法立即看到如何解决的问题。

我有一个Maven项目,它依赖于JDK9的hibernate-corejboss-transaction-api_1.2_spec(5.2.11.Final)。 Hibernate传递了java.sql。 jar和java.transaction.xa模块都包含包:Error:java: the unnamed module reads package javax.transaction.xa from both jboss.transaction.api.1.2.spec and java.sql ,因此编译器会向我抛出大量的错误:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>${hibernate-entitymanager.version}</version>
    <exclusions>
        <exclusion>
            <artifactId>jboss-transaction-api_1.2_spec</artifactId>
            <groupId>org.jboss.spec.javax.transaction</groupId>
        </exclusion>
    </exclusions>
</dependency>

我以为我通过这样做解决了这个问题:

Caused by: java.lang.ClassNotFoundException: javax.transaction.SystemException

但是,虽然它稍后编译它会在运行时抛出此异常:

javax.transaction.SystemException

事实证明,jboss-transaction-api_1.2_spec位于排除的java.sql依赖项中,因此我无法排除它。但我也不能依赖java.sql.DataSource包含java.sql的{​​{1}},我也会使用它!

如何解决模块和.jar('自动模块'?)这个包含两个等价命名包但包含不同类的问题?我需要的两个!

修改

我看了一下Hibernate, Java 9 and SystemException,但这似乎改变了问题,所以现在编译器只是抱怨javax.transaction.apiError:java: the unnamed module reads package javax.transaction.xa from both java.sql and javax.transaction.api

中的相同包
java.transaction.xa

问题的关键在于两个模块中都存在sizeof("POR")包。

这似乎是一个已知的问题,我看不出是否有任何明确/简单的解决方案:

https://developer.jboss.org/message/960718#960718

0 个答案:

没有答案