Java9: jigsaw 和 hibernate 5.2.12 不工作
Java 9: jigsaw and hibernate 5.2.12 doesn't work
在我的pom.xml文件中我只有一个依赖:
<dependencies>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.12.Final</version>
</dependency>
</dependencies>
还有一个模块-info.java
module testmodule {
requires hibernate.jpa;
requires hibernate.core;
}
但是当我尝试 运行 我的应用程序时,我收到错误:Caused by: java.lang.IllegalArgumentException: jboss.transaction.api.1.2.spec:无效的模块名称:“1”不是 Java 标识符 。有什么想法如何处理吗?
从堆栈跟踪来看,异常不是针对 hibernate-core 模块,而是针对
jboss-transaction-api_1.2_spec
依赖项包含在您的项目中。
直到依赖的版本1.0.1.Final
,自动模块名无法从jar文件名中导出。
这已经在 2017 年 10 月发布的 2.0.0.Alpha1 版本中进行了更新,现在有一个 module-info.class
打包在 jar 中以从中获取模块名称。
因此,您最好使用模块名称为 java.transaction
的 2.0.0.Alpha1
版本,如:
<dependency>
<groupId>org.jboss.spec.javax.transaction</groupId>
<artifactId>jboss-transaction-api_1.2_spec</artifactId>
<version>2.0.0.Alpha1</version>
</dependency>
在下面的环境中这样工作:
module testmodule {
requires java.persistence;
requires org.hibernate.orm.core;
}
环境:
java -version
openjdk version "11.0.1" 2018-10-16
OpenJDK Runtime Environment 18.9 (build 11.0.1+13)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode)
hibernate 版本:5.3.7.Final
-> 取决于 javax.persistence-api-2.2
com.fasterxml.jackson.core 人工制品版本:2.9.7
jackson-datatype-hibernate5 版本:2.9.7
弹簧框架版本:5.1.2.RELEASE
在我的pom.xml文件中我只有一个依赖:
<dependencies>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.12.Final</version>
</dependency>
</dependencies>
还有一个模块-info.java
module testmodule {
requires hibernate.jpa;
requires hibernate.core;
}
但是当我尝试 运行 我的应用程序时,我收到错误:Caused by: java.lang.IllegalArgumentException: jboss.transaction.api.1.2.spec:无效的模块名称:“1”不是 Java 标识符 。有什么想法如何处理吗?
从堆栈跟踪来看,异常不是针对 hibernate-core 模块,而是针对
jboss-transaction-api_1.2_spec
依赖项包含在您的项目中。
直到依赖的版本1.0.1.Final
,自动模块名无法从jar文件名中导出。
这已经在 2017 年 10 月发布的 2.0.0.Alpha1 版本中进行了更新,现在有一个 module-info.class
打包在 jar 中以从中获取模块名称。
因此,您最好使用模块名称为 java.transaction
的 2.0.0.Alpha1
版本,如:
<dependency>
<groupId>org.jboss.spec.javax.transaction</groupId>
<artifactId>jboss-transaction-api_1.2_spec</artifactId>
<version>2.0.0.Alpha1</version>
</dependency>
在下面的环境中这样工作:
module testmodule {
requires java.persistence;
requires org.hibernate.orm.core;
}
环境:
java -version
openjdk version "11.0.1" 2018-10-16
OpenJDK Runtime Environment 18.9 (build 11.0.1+13)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode)
hibernate 版本:5.3.7.Final
-> 取决于 javax.persistence-api-2.2
com.fasterxml.jackson.core 人工制品版本:2.9.7
jackson-datatype-hibernate5 版本:2.9.7
弹簧框架版本:5.1.2.RELEASE