Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';I'时不编译项目;我在IntelliJ IDEA下使用Lombok_Java_Intellij Idea_Lombok - Fatal编程技术网

Java Can';I'时不编译项目;我在IntelliJ IDEA下使用Lombok

Java Can';I'时不编译项目;我在IntelliJ IDEA下使用Lombok,java,intellij-idea,lombok,Java,Intellij Idea,Lombok,我正在尝试在我的项目中使用IntelliJ IDEA 11进行开发 我已经安装了,它似乎工作正常,因为IDEA可以看到所有自动生成的方法/字段 所以我有一个使用Slf4j的类。我这样注释它 import lombok.extern.slf4j.Slf4j; @Slf4j public class TestClass { public TestClass() { log.info("Hello!"); } } 但是当我构建我的项目编译

我正在尝试在我的项目中使用IntelliJ IDEA 11进行开发

我已经安装了,它似乎工作正常,因为IDEA可以看到所有自动生成的方法/字段

所以我有一个使用Slf4j的类。我这样注释它

import lombok.extern.slf4j.Slf4j;

@Slf4j
public class TestClass
{
    public TestClass()
    {
        log.info("Hello!");
    }
}
但是当我构建我的项目编译器时,
无法找到符号变量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:也许读者不想听到,但我最终选择了。

您的项目是否依赖lombok?编译使用任何lombok注释的项目时,lombok.jar必须位于类路径上。

是否将lombok作为项目的依赖项?编译使用任何lombok注释的项目时,lombok.jar必须位于类路径上。

我在IDEA 12中通过在以下位置设置复选框
启用注释处理来修复它:

设置->编译器->注释处理器

对于IDEA 2016.2:

首选项…>生成、执行、部署>编译器>注释处理器

启用后,运行Build->Rebuild Project以识别注释并消除错误


对于IDEA 2019.2.1,根据项目的配置,安装project Lombok插件可能不够。下面是将Project Lombok与IntelliJ IDEA结合使用的另一种方法:

  • 拜访
  • 将JAR文件下载到projectlib目录中(例如,
    $HOME/dev/java/project/libs
  • 启动IDE

  • 单击文件我已在IDEA 12中通过在以下位置设置复选框
    启用注释处理将其修复:

    设置->编译器->注释处理器

    对于IDEA 2016.2:

    首选项…>生成、执行、部署>编译器>注释处理器

    启用后,运行Build->Rebuild Project以识别注释并消除错误


    对于IDEA 2019.2.1,根据项目的配置,安装project Lombok插件可能不够。下面是将Project Lombok与IntelliJ IDEA结合使用的另一种方法:

  • 拜访
  • 将JAR文件下载到projectlib目录中(例如,
    $HOME/dev/java/project/libs
  • 启动IDE

  • 单击文件如前所述,引用:“您应该激活外部编译器选项并启用注释处理器,或者禁用外部编译器并禁用所有注释编译器以使用lombok”。这解决了我的问题。请注意,我在收到此错误之前添加了Scala插件,因此我怀疑该插件更改了上面的一些设置。

    如前所述,引用:“您应该激活外部编译器选项并启用注释处理器,或者禁用外部编译器并禁用所有注释编译器以使用lombok”。这解决了我的问题。请注意,我在收到此错误之前添加了Scala插件,因此我怀疑该插件更改了上面的一些设置。

    我在使用JDK8构建时遇到类似问题,将项目设置回JDK7,效果良好。可能是Lombok的旧版本,无法在JDK8下编译。

    我在使用JDK8构建时遇到了类似问题,将项目设置回JDK7,它工作正常。可能是Lombok的旧版本,无法在JDK8下编译。

    启用注释处理将使其正常工作

    但是,如果您使用的是Mac,请确保从两个可用位置启用注释处理(勾选复选框)

    1.)Intellij Idea->首选项->编译器->注释处理器


    2.)文件->其他设置->默认设置->编译器->注释处理器启用注释处理将使其正常工作

    但是,如果您使用的是Mac,请确保从两个可用位置启用注释处理(勾选复选框)

    1.)Intellij Idea->首选项->编译器->注释处理器


    2.)文件->其他设置->默认设置->编译器->注释处理器有一个intellij插件。请参见此处:

    有一个intellij插件。请参见此处:

    对于仍有问题的人:


    除了上述启用注释处理器和安装IntelliJ Lombok插件的步骤外,我还必须构建->重建项目。

    对于仍有问题的人:


    除了上述启用注释处理器和安装IntelliJ Lombok插件的步骤外,我还必须构建->重建项目。

    可能发生的情况是,即使您正确配置了它,并且它在库和Gradle dependencies列表中可见,IntelliJ在类路径中仍然没有它。或者它在那里,但配置了不同的作用域(例如:test而不是compile)

    首先,确保安装了插件并启用了注释处理,如其他答案中所述

    如果仍然无法识别注释,请将光标放在注释上,按ALT+ENTER(或OPTION+ENTER),然后查看是否有菜单选项
    添加库:Gragle:org.projectlombok:lombok:VERSION to class path
    。如果你能看到它,选择这个,它可能会解决你的问题

    您可以在以下位置查看库及其范围:
    项目设置/模块/依赖项选项卡(在其中搜索lombok)

    可能发生的情况是,即使您正确配置了它,并且它在库和渐变依赖项列表中可见,IntelliJ仍然没有在类路径中包含它。或者它在那里,但配置了不同的作用域(例如:test而不是compile)

    首先,确保已安装插件
    <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.20</version>
            <scope>provided</scope>
        </dependency>
    
    File -> Settings -> Plugins-> Browse Repositories -> Lombok Plugin
    
    File -> Settings -> Build, Execution, Deployment -> Compiler -> Annotation Processors
    File -> Other Settings -> Default Settings -> Compiler -> Annotation Processors
    
     dependencies {
         compileOnly 'org.projectlombok:lombok:1.18.8'
         annotationProcessor 'org.projectlombok:lombok:1.18.8'
         ...
     }
    
    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok:1.18.8'
    
                        <annotationProcessorPath>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                            <version>1.18.8</version>
                        </annotationProcessorPath>
    
    <build>
            <defaultGoal>spring-boot:run</defaultGoal>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>${java.version}</source>
                        <target>${java.version}</target>
                        <annotationProcessorPaths>
    ...
                            <path>
                                <groupId>org.projectlombok</groupId>
                                <artifactId>lombok</artifactId>
                                <version>${lombok.version}</version>
                            </path>       
                        </annotationProcessorPaths>
                    </configuration>
                </plugin>
    </build>