首页 > 解决方案 > 使用 Maven 将 Chronicle Queue 添加到项目中与 Lombok 冲突

问题描述

我在一个没有 Lombok 的项目中使用 Chronicle Queue。一切都很好。然后我尝试在具有 Lombok 依赖项的项目中使用相同的 Maven 依赖项。但这一次它崩溃了。我在所有 Lombok Getter 和 Setter 注释中看到以下错误。

The package java.lang is accessible from more than one module: <unnamed>, java.base

我可以运行该项目。但是 Eclipse 在使用 Lombok 注释的类中显示红色警告。这是我的 Chronicle Queue 依赖项。

  <!-- https://mvnrepository.com/artifact/net.openhft/chronicle-queue -->
    <dependency>
      <groupId>net.openhft</groupId>
      <artifactId>chronicle-queue</artifactId>
      <version>5.17.22</version>
    </dependency>

图片在这里

关于解决方案的任何想法?谢谢。

标签: eclipselombokchronicle-queue

解决方案


问题是,我认为,传递依赖chronicle-queue在包中有一些类java.lang,这是不再允许的。

基本上,您必须排除该net.openhft:affinity包。就像是:

Maven 片段

    <dependency>
      <groupId>net.openhft</groupId>
      <artifactId>chronicle-queue</artifactId>
      <version>5.17.22</version>
      <exclusions>
            <exclusion>
                <groupId>net.openhft</groupId>
                <artifactId>affinity</artifactId>
            </exclusion>
        </exclusions>

    </dependency>

PS 从技术上讲,我们在使用chronicle-map而不是 时遇到了同样的问题chronicle-queue,但我相信这是出于同样的原因,所以我还是发布了。


推荐阅读