Java: 您没有使用 lombok 支持的编译器,所以 lombok 不能工作,并且已经被禁用

升级后,无法从 intellijIDE 运行应用程序。

IntelliJ 版本: IntelliJ IDEA 2020.3(社区版) Build # IC-203.5981.155,Build on December 1,2020建造号 IC-203.5981.155,建于2020年12月1日

Lombok 版本: 0.32-EAP

错误:

java: You aren't using a compiler supported by lombok, so lombok will not work and has been disabled.
Your processor is: com.sun.proxy.$Proxy24
Lombok supports: sun/apple javac 1.6, ECJ
93071 次浏览

在将 Intellij 社区升级到20.3之后,我遇到了同样的问题。 这个问题可以通过将 Lombok 插件更新到1.18.16来解决

这个问题是在 IntelliJ IDEA 2020.3(Community Edition) Build # IC-203.5981.155中介绍的。

您可以通过将此依赖项添加到项目中来修复它-

玛文


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


格拉德

providedCompile group: 'org.projectlombok', name: 'lombok', version: '1.18.16'

这个版本:

  • 版本: 2020.3
  • Build: 203.5981.155构建: 203.5981.155
  • 2020年12月1日

我收到一条信息:

Something 您没有使用 lombok 支持的编译器,因此 lombok 将无法工作,并且已被禁用


那么,

我在 IntelliJ 中添加了 Lombok 插件:

install lombok plugin

我启动了它: enter image description here

我下载了最后一个 lombok Jar: < a href = “ https://projectlombok.org/downloads/lombok.Jar”rel = “ norefrer”> https://projectlombok.org/downloads/lombok.Jar

然后手动安装: download lombok jar

将其添加到平台设置中 add lombok jar in platform settings

现在起作用了正常!


PS : 我的龙目岛 项目版本是 1.18.8,而下载的平台设置中安装的 罐子版本是 1.18.16

Java: 您没有使用 lombok 支持的编译器,所以 lombok 不能工作,并且已经被禁用。 您的处理器是: com.sun.xy. $Proxy27 龙目岛支持: sun/apple javac 1.6,ECJ

升级您的 Lombok 版本,添加以下对 gradle 的依赖关系,因为这是更新的 Intellij 2020.3所支持的版本:

compileOnly 'org.projectlombok:lombok:1.18.16'
annotationProcessor 'org.projectlombok:lombok:1.18.16'

您需要启用 捆绑插件。

由于2020.3版本的龙目岛插件是内置的,你不需要下载单独的插件(这个插件已经不能工作了)。找到它在 安装插件(而不是在 市场) ,并简单地启用它。

it's bundled1

该插件没有 网页链接了,有一个不同的说明。

new plugin description

使用 lombok 1.18.16对我来说不起作用

-Djps.track.ap.dependencies=false

场景:-

构建、执行、部署-> 编译器-> 共享构建过程 VM 选择

成功了 Https://github.com/rzwitserloot/lombok/issues/2592

在我的例子中,我在项目中运行了一个依赖模块,该模块使用了另一个版本的 Lombok。更准确地说,是另一个弹簧启动版本。它的 BOM 带来了另一个龙目怪的版本。

version warning

Intellij CE 版本: 2020.3龙目岛问题通过简单地更新 POM 依赖关系就可以解决,

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.16</version>
</dependency>

我的项目在1.18.16版本中使用了 lombok,但是 intellij 2020.3拒绝编译我的代码,上面的答案也没有帮助:。

最终,在设置-> “构建,执行,部署”-> 编译器-> “注释处理器”工作:)确保启用“注释处理”和“从类路径获取处理器”复选框。

截图

  • 转到 IntelliJ | 参数设置 | 构建、执行、部署 |
  • 编译器查找生成进程 VM 选项或共享生成进程 VM
  • 选项在文本中添加字符串-Djps.track.ap.endency = false
  • 点击保存

通过使用 maven- 编译器-插件配置解决了这个问题,并按如下方式指定了注释 ProcessorPath:

注意,我还有 mapstruct,因此需要额外的路径。

内部构建/插件:

      <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-mapstruct-binding</artifactId>
<version>${mapstruct-processor.version}</version>
</path>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${mapstruct.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>

我的依赖关系:

    <dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>${mapstruct.version}</version>
</dependency>

我的财产:

    <java.version>11</java.version>
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
<mapstruct.version>1.4.2.Final</mapstruct.version>
<mapstruct-processor.version>0.2.0</mapstruct-processor.version>
<!-- Bumped version of lombok temporarily to avoid issues with IntelliJ 2020.3+ until we have upgraded to a more recent version of spring boot. -->
<lombok.version>1.18.20</lombok.version>

注: 我将 Lombok 版本覆盖到1.18.20,因为我仍然使用旧版本的 Spring boot,它在引擎盖下使用1.18.12..。

我犯了同样的错误,并且解决了将 IntelliJ 升级到2021.1.1版本的问题: IntelliJ IDEA 2021.1.1(社区版) Build # IC-211.7142.45,Build on April 30,2021建造号 IC-211.7142.45,建于2021年4月30日

执行以下步骤以解决此问题->

  1. 从头部点击文件菜单附近的 IntelliJ 创意
  2. 开放首选项
  3. 单击构建、执行和部署
  4. 转到编译
  5. 在 User-local build process VM 选项中-> Add this command 依赖性 = false
  6. 应用更改

对于不耐烦的人(如我自己)加上

-Djps.track.ap.dependencies=false

到“共享构建过程 VM 选项:”

enter image description here

对我来说,我关闭了捆绑的龙目岛插件,然后再次启用,重新加载了 maven 项目。

龙目岛1.18.22

IDEA 2021.3 # IU-213.5744.223

另一个原因可能是你更新了 lombok 版本,却忘了更新 lombok 插件的版本:

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
<scope>provided</scope>
</dependency>
<!-- needs to match -->
<plugin>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-maven-plugin</artifactId>
<version>1.18.20.0</version>
<!-- [...] plugin config -->
</plugin>

不知怎么的,无论我在设置中尝试了什么选项,我都无法让它工作。我最终按照 带 ECJ 页的 Lombok上的简单指令设法使它工作。我下载了 lombok.jar 并在 Shared build process VM options中添加了以下内容:

-Djps.track.ap.dependencies=false -javaagent:/path/to/lombok/jar/lombok.jar=ECJ

这是使用这个系统:

IntelliJ IDEA 2022.1.4(终极版)

Build # IU-221.6008.13,Build on July 19,2022建造号 IU-221.6008.13,建于2022年7月19日

Macbook pro 和 M1 pro

按照提供的 <scope>provided</scope>.添加作用域

这不会给编译时带来任何问题