java - AspectJ Weaver & java 模块系统(spring + gradle),编译问题

标签 java spring gradle aspectj

我使用 Spring 5、Java 10 和 Gradle 4.8

我面临以下问题:
java.lang.ClassNotFoundException: org.aspectj.util.PartialOrder$PartialComparable
我阅读了堆栈溢出以添加:
compile group: 'org.aspectj', name: 'aspectjweaver', version: '1.9.1'
但是,当我这样做时,会出现 100 个错误,例如:
error: module java.persistence reads package org.aspectj.internal.lang.reflect from both aspectjrt and org.aspectj.weaver
如何解决问题?

依赖项:

compile group: 'javax.validation', name: 'validation-api', version: '2.0.1.Final'
compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.9.5'
compile group: 'org.springframework', name: 'spring-core', version: '5.0.7.RELEASE'
compile group: 'org.springframework', name: 'spring-context', version: '5.0.7.RELEASE'
compile group: 'org.springframework', name: 'spring-context-support', version: '5.0.7.RELEASE'
compile group: 'org.postgresql', name: 'postgresql', version: '42.2.1'
compile group: 'org.springframework.data', name: 'spring-data-jpa', version: '2.0.8.RELEASE'
compile group: 'io.projectreactor', name: 'reactor-core', version: '3.1.8.RELEASE'
compile group: 'org.springframework.security', name: 'spring-security-core', version: '5.0.6.RELEASE'
compile group: 'org.springframework.security', name: 'spring-security-config', version: '5.0.6.RELEASE'

compile group: 'javax.annotation', name: 'javax.annotation-api', version: '1.3.2'
compile group: 'org.hibernate', name: 'hibernate-core', version: '5.3.1.Final'
compile group: 'org.hibernate', name: 'hibernate-hikaricp', version: '5.3.1.Final'
compile group: 'org.hibernate.validator', name: 'hibernate-validator', version: '6.0.10.Final'
compile group: 'org.glassfish', name: 'javax.el', version: '3.0.1-b08'
compile group: 'com.github.ben-manes.caffeine', name: 'caffeine', version: '2.6.2'

compile group: 'org.aspectj', name: 'aspectjrt', version: '1.9.1'
compile group: 'org.freemarker', name: 'freemarker', version: '2.3.28'
compile group: 'javax.mail', name: 'javax.mail-api', version: '1.6.2'
compile group: 'javax.activation', name: 'activation', version: '1.1.1'

最佳答案

问题是 spring-data-jpa 具有 aspectjrt 版本 1.8.x 的依赖关系(我认为)还没有为 java9 模块化做好准备。我从依赖项中排除了它,并包含了 aspectjrt 和 weaver 的正确版本,它现在可以工作了。

关于java - AspectJ Weaver & java 模块系统(spring + gradle),编译问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52244442/

相关文章:

java - 对于Gradle Plugin(非核心插件),如何确定每个插件的版本?

java - 使用 Spring restTemplate 遵循 302 重定向?

java - 在@RestController 上使用 Spring Caching 注解

java - 在服务之间共享 Java 类

java - 具有公钥的 RSA 签名作为未在 java 中验证的文本

java - 当用户单击空格按钮时创建带有气泡的标签

java - 当消费者抛出异常时如何使 JUnit 测试失败?

android - 如何使用 Gradle 构建在 Android Studio 中导入 com.google.android.gms.*?

gradle - 为什么 ./gradlew clean build 和 ./gradlew clean :build 之间有区别

java - 是什么导致 opencv_traincascade.exe 在获取负样本时崩溃?