在intellij idea下使用lombok时无法编译项目

rkkpypqq  于 2021-06-29  发布在  Java
关注(0)|答案(26)|浏览(737)

我尝试在我的项目中使用lombok,我正在使用intellijidea11开发。
我已经为idea安装了第三方插件,它看起来运行良好,因为idea可以看到所有自动生成的方法/字段。
所以我有一个使用slf4j的类。我这样注解它

import lombok.extern.slf4j.Slf4j;

@Slf4j
public class TestClass
{
    public TestClass()
    {
        log.info("Hello!");
    }
}

但是当我构建我的项目时: cannot find symbol variable log .
你能告诉我我错过了什么吗?
更新:原来是requestfactory注解过程失败了。

input files: {com.zasutki.courierApp.server.TestServlet, com.mine.courierApp.server.model.DatastoreObject}

annotations: [javax.inject.Singleton, javax.inject.Inject, lombok.Getter, lombok.Setter, com.googlecode.objectify.annotation.Id, com.googlecode.objectify.annotation.OnSave]

Processor com.google.web.bindery.requestfactory.apt.RfValidator matches [lombok.Getter, com.googlecode.objectify.annotation.Id, javax.inject.Inject, lombok.Setter, com.googlecode.objectify.annotation.OnSave, javax.inject.Singleton] and returns false.

cannot find symbol variable log

有什么解决办法吗?
更新2:也许这不是读者想听到的,但我最终还是转向了scala。

jpfvwuh4

jpfvwuh416#

启用注解处理将使其工作
但是,如果您使用的是mac,请确保从两个可用位置启用注解处理(勾选复选框)。
1.)intellij idea->首选项->编译器->注解处理器
2.)文件->其他设置->默认设置->编译器->注解处理器

pkmbmrz7

pkmbmrz717#

在使用jdk8构建项目时,我遇到了类似的问题,将项目设置回jdk7,结果很好。可能是旧版本的lombok,不能在jdk8下编译。

vptzau2j

vptzau2j18#

解决此问题的图片表示。
首先启用注解处理器并重试。这可能有效,也可能无效。

在此之后,您可以从intellij安装lombok插件,(安装后intellij将重新启动以启用插件,因此请确保保存您的工作。(intellij确实会在重新启动前保存所有更改,只是为了安全起见。)下面的屏幕截图:

7d7tgy0s

7d7tgy0s19#

仅供参考使用intellij 2018.3,我解决了这个问题(使用 @Data 要插入的注解 getter/setter )遵循以下三个步骤:
文件->设置->构建、执行、部署->注解处理器->启用注解处理;

一定要记住应用更改。
在同一设置对话框中安装插件lombok;

现在看来已经足够了,它需要重新启动intellij,然后重建项目。
祝福:)

wvyml7n5

wvyml7n520#

对于那些仍有困难的人:
除了上面启用注解处理器和安装intellijlombok插件的步骤之外,我还必须构建->重建项目。

4c8rllxm

4c8rllxm21#

如果您检查了以下两个步骤
启用注解:这是在intellij首选项中完成的检查。
将lombok导入intellij类路径(首选项->插件)
如果仍然有错误,请检查编译器-如果是javac或eclipse。
您可以在preferences->build,execution,deployment->compiler->java compiler中检查编译器。
将use编译器更改为javac(如果是eclipse)。这就是我的工作。

yduiuuwa

yduiuuwa22#

确保已将其正确添加到项目中。
grad尔的例子:

dependencies {
     compileOnly 'org.projectlombok:lombok:1.18.8'
     annotationProcessor 'org.projectlombok:lombok:1.18.8'
     ...
 }

为您的ide安装lombok插件
选中ide(intellijidea)中的“启用注解处理”复选框,不知道其他ide(如eclipse)是否有类似的情况。

cclgggtu

cclgggtu23#

你的项目依赖Lombok山吗?在编译使用任何lombok注解的项目时,lombok.jar必须位于类路径上。

rpppsulh

rpppsulh24#

我也有同样的问题,所以我将把这个留在这里,以备将来我的遗忘参考。
什么时候 Alt+Enter 正在打开 @Slf4j 注解我错误地选择了无效的导入。因此,如果代码无法编译,请确保导入: import lombok.extern.slf4j.Slf4j;

s1ag04yj

s1ag04yj25#

除了所有答案中提到的以外,我还必须在pom.xml配置中添加以下代码,以使mvn干净地安装工作。在添加这段代码之前,我发现getter和setter都找不到符号。

<annotationProcessorPath>
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok</artifactId>
                        <version>1.18.8</version>
                    </annotationProcessorPath>
m1m5dgzv

m1m5dgzv26#

我上了电视 Mac 这是我的intellij idea和mac版本-intellij idea 2017.1.5内部版本#iu-171.4694.70---mac os x 10.12
除了在这两个位置启用注解处理(勾选复选框)。
1.)intellij idea->首选项->编译器->注解处理器
.
2.)文件->其他设置->默认设置->编译器->注解处理器
我不得不安装lombok插件也使其工作。
3.)intellij idea->首选项->插件->浏览存储库->搜索“lombok”->安装插件->应用并重新启动idea

相关问题