Java 9:拼图和休眠 5.2.12 不起作用

Tim*_*rJD 5 java hibernate jta java-platform-module-system java-9

在我的pom.xml文件中,我只有一个依赖项:

<dependencies>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>5.2.12.Final</version>
    </dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)

还有一个module-info.java

module testmodule {
    requires hibernate.jpa;
    requires hibernate.core;
}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试运行我的应用程序时,我收到错误:Caused by: java.lang.IllegalArgumentException: jboss.transaction.api.1.2.spec: Invalid module name: '1' is not a Java identifier。任何想法如何处理它?

Nam*_*man 5

从堆栈跟踪来看,异常不是针对 hibernate-core 模块,而是针对jboss-transaction-api_1.2_spec项目中包含的 依赖项。

1.0.1.Final依赖版本之前,无法从 jar 文件名导出自动模块名称。

在此处输入图片说明

这已经在 2017 年 10 月的 2.0.0.Alpha1 版本中进行了更新,现在module-info.class在 jar 中打包了一个可以从中获取模块名称的文件。

因此,您最好使用2.0.0.Alpha1带有模块名称的版本java.transaction

<dependency>
    <groupId>org.jboss.spec.javax.transaction</groupId>
    <artifactId>jboss-transaction-api_1.2_spec</artifactId>
    <version>2.0.0.Alpha1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明