【问题标题】:Adding Chronicle Queue to project using Maven conflicts with Lombok使用 Maven 将 Chronicle Queue 添加到项目与 Lombok 冲突
【发布时间】:2019-09-18 15:31:07
【问题描述】:

我在一个没有 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>

Image Here

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

【问题讨论】:

  • 您使用哪个 Lombok 版本?
  • @JanRieke 我用这个 "provided" ,是不是有问题?
  • 不,Lombok 必须作为provided 包含在内。版本很重要,因为旧版本与模块结合时存在一些问题。您应该使用最新版本 1.18.10。
  • 我尝试了最新版本,同样的问题还在继续。我认为这是关于 Eclipse 的。因为我正确地运行了项目。唯一的问题是红色警告。这意味着编译器没有问题。不知道怎么解决。

标签: eclipse lombok chronicle-queue


【解决方案1】:

我认为,问题是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>

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-30
    • 1970-01-01
    • 2019-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多