【问题标题】:Intellij + lombok + fat jar => Lombok installerIntellij + lombok + fat jar => Lombok 安装程序
【发布时间】:2019-10-07 08:46:49
【问题描述】:

我有一个 spring boot 2 项目,使用 Intellij IDEA Ultimate 2018.3 下的 Lombok (1.18.6)。 在作为应用程序运行的 IntelliJ 中一切正常。 但是当我尝试构建一个胖罐作为工件并在终端(OSX)中启动它时: java -jar my project.jar,我得到一个 Lombok 安装程序窗口!!!有什么想法吗?

【问题讨论】:

  • 你是用 maven 还是 gradle 构建的?
  • 你是如何构建 fatjar 的?您应该使用spring-boot-maven-plugin
  • 使用 Maven,是的,spring-boot-maven-plugin 存在。

标签: spring macos intellij-idea lombok fatjar


【解决方案1】:

Lombok 基本上是一个注解处理器,因此没有必要在运行时提供对 lombok 的依赖。阅读,它不应该是 Spring Boot 应用程序的一部分。

看看BOOT-INF/lib - 如果你看到 lombok,请更改构建脚本。例如对于 maven,将作用域的依赖设置为“提供”

【讨论】:

  • 回复:第二段。我最近遇到了这个确切的问题。 Spring Boot 会将 Lombok 放入 即使 范围是“提供”的。您需要手动排除 Lombok。
  • @Michael,是的,你是对的。我没有专注于应该如何排除龙目岛的技术方面。总而言之,就像 M. Deinum 所说的那样——通常人们使用 spring-boot-maven-plugin。如果问题中会显示更多详细信息,也许我们将能够提供一个真正有效的解决方案......
  • 好的,谢谢!好吧,我已经尝试过“提供”并且有效地,lombok.jar 仍然在这里。所以我从工件配置中包含的库中手动删除了它。它似乎一直有效,直到清理和重建,现在不再生成 Getter 和 setter。我要检查我的编译器选项(我一直在尝试解决我最初的问题。无论如何,谢谢,解决方案正在进行中!
  • @ChristopheArnal 好吧,您不能完全删除它,因为它是必需的。问题可能是您没有直接指定主类,而插件正在选择它找到的第一个。
猜你喜欢
  • 2020-02-07
  • 1970-01-01
  • 2012-10-16
  • 2022-01-07
  • 1970-01-01
  • 2022-08-02
  • 2017-08-12
  • 2020-11-19
  • 2020-07-23
相关资源
最近更新 更多