gpt4 book ai didi

Gradle - Java 9 - spring-data-ja

转载 作者:行者123 更新时间:2023-12-03 20:44:14 25 4
gpt4 key购买 nike

我尝试使用 JDK 9 和 gradle 构建一个已经存在的项目。

我想我的模块加载有问题。

这是我的 gradle 依赖项的示例:

compile("org.springframework:spring-context:${spring_version}"){
exclude group: 'commons-logging', module: 'commons-logging'
}
compile("org.springframework.data:spring-data-jpa:${spring_data_version}"){
exclude group: 'commons-logging', module: 'commons-logging'
}

compile ("org.apache.commons:commons-dbcp2:${commons_dbcp2_version}"){
exclude group: 'commons-logging', module: 'commons-logging'
}
compile ("org.hibernate:hibernate-entitymanager:${hibernate_version}"){
exclude group: 'org.jboss.spec.javax.transaction'
}

compile ("org.hibernate:hibernate-java8:${hibernate_version}"){
exclude group: 'org.jboss.spec.javax.transaction'
}

当我尝试构建时,在运行测试时出现以下错误:

java.lang.NoClassDefFoundError: javax/transaction/SystemException

所以一个解决方案是还包括以下依赖项:

compile "javax.transaction:jta:1.1"

构建现在退出并出现模块重复错误,如下所示:

error: module flyway.core reads package javax.transaction.xa from both jta and java.sql
error: module hibernate.jpa reads package javax.transaction.xa from both jta and java.sql
error: module hibernate.entitymanager reads package javax.transaction.xa from both jta and java.sql

我也尝试包含选项 --add-modules java.se.ee ,但它仍然不起作用。

继续我的问题:我需要在我的 module-info.java 中包含 java.sql,但我还需要 javax.transaction:jta 依赖项 jar,并且此 jar 与 java.sql 模块冲突。

任何帮助将不胜感激!

最佳答案

这些问题并没有说明它无法找到模块/包。它从两个(可能自动)模块读取包。您可以将它从其中任何一个中排除,而另一个仍然为您提供所需的功能。

因此,目前,您可以通过包含 -

来解决此问题
exclude group: 'javax.transaction.xa', module: 'moduleBringingThisPackage' 

可以通过扫描模块的依赖层次结构找到 'moduleBringingThisPackage'


虽然我不是很擅长gradle,但是要找到moduleBringingThisPackage,你可以使用

gradle dependencies

列出顶级依赖项带来的依赖项,并进一步 you can exclude the dependencyjavax.transaction.xa 添加到它们中。


编辑:有了更新后的问题,我认为有一个较短的版本。

(1) 当我尝试构建时,在运行测试时出现以下错误:

java.lang.NoClassDefFoundError: javax/transaction/SystemException

(2) 所以一个解决方案是还包括以下依赖项:

compile "javax.transaction:jta:1.1"

不要执行上面的步骤 (2),而只需添加

{ options.compilerArgs += ["--add-modules", "java.se.ee"] }

此时在你的 build.gradle 文件中

关于Gradle - Java 9 - spring-data-ja,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46447875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com