【问题标题】:There's Lombok annotation @Slf4j which won't work有 Lombok 注释 @Slf4j 不起作用
【发布时间】:2021-07-09 11:51:58
【问题描述】:

我需要你的帮助。我对 Lombok 注释 @Slf4j 有疑问。当我尝试使用它时,我无法使用它的功能:

这是我的 build.gradle 文件:

我已经将 Lombock 安装到我的 IntelliJ Idea 中并启用了注释处理,但它还没有让我得到结果。 你能给点建议吗?我将不胜感激!

【问题讨论】:

  • 除了安装 Lombok 插件外,还要确保勾选“启用注释处理”复选框:首选项 > 编译器 > 注释处理器 注意:从 IntelliJ 2017 开始,“启用注释处理” " 复选框已移至:设置 > 构建、执行、部署 > 编译器 > 注释处理器
  • @scala231 不要将代码行作为图像发布。这使得帮助者很难提供帮助。
  • 它工作得很好。其他生成的部分是否有效?

标签: java intellij-idea slf4j lombok


【解决方案1】:

在这里猛烈抨击,但龙目岛不包括 slf4j。实在不行1extern 包中的所有功能都是这样工作的,这就是lombok.extern 包层存在的原因:向您展示它是一个 lombok 功能,它使一些非核心(“外部”)依赖项工作得更好,而不是lombok 功能包含或替换此依赖项。

因此,您需要解决的只是将 slf4j 添加到您的依赖项中:

compile 'org.slf4j:slf4j:1.7.31'

omr 沿着这些思路。请注意,SLF4j 还需要运行时配置(slf4j 本身只是一个“前端”,它允许您编写日志语句,这些语句可以转到您的配置在运行时指定的任何位置。这个“配置”包括实际处理这些日志的代码。Slf4j教程将涵盖所有这些。

[1] 自动添加 deps 是不可能的; lombok 附带了许多专门用于使某些库/框架更易于使用的功能,我们(免责声明:我在 lombok 上做了很多工作)无法将它们 所有这些作为lombok 的部门,我们还没有(也可能永远不会)尝试侵入您的构建系统来制作某种我们检测到您使用的半依赖系统,例如@Slf4j 并以某种方式让你的构建系统只包含它。

【讨论】:

  • 确实,具体的实际问题可能是必须定义 slf4j 依赖项。
【解决方案2】:

您遇到了一些 IDE 构建问题。

您为什么不采用 Maven(或 Gradle)构建工具,它可能用于 80%(gradle 可能是其他 19.99%)的团队项目中。

然后没有什么关于使用 Lombok 的具体内容 https://projectlombok.org/setup/maven

只是

<dependencies>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.20</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

它适用于任何 IDEA 或大多数 IDE

附:自 v2020.3 以来,IDEA 中特别没有配置/插件 https://projectlombok.org/setup/intellij

附言如果您使用 maven/gradle 并且在任何 IDE 中遇到任何问题, 首先尝试通过在命令行中运行来确保构建本身没有问题

mvn package

gradle build

然后,如果构建正常,请尝试解决特定的 IDE 问题。 像“大多数人会做或不会做的事情来让它发挥作用”这样思考

例如,您可以再安装一个最新的 IDEA 实例,例如IDEA CE(它被低估了,因为它是免费的)并在那里打开你的项目:它应该可以在没有任何舞蹈的情况下工作。

【讨论】:

  • 这个建议毫无意义。 “请使用 gradle 或 maven” - 问题包括 gradle 除外(并且上次编辑 在您写此答案之前)。也许您没有完全阅读这个问题?这些似乎都与 OP 遇到的问题无关。
  • 感谢您的回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-20
  • 1970-01-01
  • 1970-01-01
  • 2016-02-04
  • 1970-01-01
  • 2019-10-14
  • 1970-01-01
相关资源
最近更新 更多