![](/img/trans.png)
[英]Problem using Gradle and Mapstruct and Lombok and Spring Boot (No implementation for mapper)
[英]Problem with Eclipse when using Java 11 and Cassandra Spring Unit possibly along with lombok and gradle
所以我遇到了一个项目的问题。 Eclipse 会说 java.util.* 有一个导入错误The package java.util is accessible from more than one module: <unnamed>, java.base
我挖了很多东西,似乎出于某种原因没有其他人真正遇到这个问题。 我们办公室的每个人都是。 他们告诉我 2018 年 Eclipse 的 RC 版本我认为 Sept 可以工作,但这是他们唯一可以让它工作的版本。我稍后会尝试发布真实版本。 所以我搜索了很多,然后开始使用包含的 gradle 文件。 并发现问题仅在我包含 Cassandra-unit-spring testCompile 要求时才存在,因此它只会在测试用例方面引起问题。
我的假设是,这在某种程度上是 eclipse 的一个错误,因为 gradle 本身没有问题。 以及intelij。 让我知道我还能在这里提供什么来进一步缩小范围。
Eclipse Build id: 20190917-1200
Eclipse with Lombok Lombok v1.18.10
Gradle 5.6.4
Oracle JDK 11.0.5
tried cassadnra-unit-spring versions 3.5.0.1 - 3.11.x
Also using spring boot 2.1.3.release
谢谢。
我已经排除了cassandra-unit
所有(传递性)依赖项,并一一重新包含了它们。 最终,我发现库com.boundary:high-scale-lib
,即org.apache.cassandra:cassandra-all
包含的传递依赖项,负责导入错误。
该库不支持 Java 9+,因为它使用 java.base 包名称,即 java.util。 这是不允许的。 不幸的是,您不能排除这种传递依赖,因为它是必需的。
我发现Eclipse 4.10的发行版并未指示使用该库的项目中的错误。 这可能是较新的 Eclipse 版本中的 UI 错误,因为我可以使用 Gradle 编译和构建我的应用程序而不会出现任何错误。
你可以试试这个 Eclipse 版本。
非常感谢辛科斯坦的辛勤工作
因此,根据您提供的信息,如果您在 build.gradle 文件中包含这样的 cassandra 单元测试
testImplementation ('org.cassandraunit:cassandra-unit-spring:3.11.2.0') {
exclude module: 'high-scale-lib'
}
这允许它在我的情况下工作。 您当然需要使用您自己的版本等。目前是 Gradle 6.3。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.