Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.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
Intellij idea 带有龙目山和x27的建筑;s@Slf4j和Intellij:找不到符号日志_Intellij Idea_Slf4j_Lombok - Fatal编程技术网

Intellij idea 带有龙目山和x27的建筑;s@Slf4j和Intellij:找不到符号日志

Intellij idea 带有龙目山和x27的建筑;s@Slf4j和Intellij:找不到符号日志,intellij-idea,slf4j,lombok,Intellij Idea,Slf4j,Lombok,我有一个maven项目,从命令行构建时没有问题。但是,当我用IntelliJ构建它时,我得到了一个错误: java: FileName.java:89: cannot find symbol symbol : variable log java文件中没有定义或导入日志,但存在 @Slf4j final public class FileName { 类主体前的语句,该语句应定义日志类 在“项目结构”窗口中,为以下对象创建类: Maven: org.slf4j:jcl-over-slf4j:

我有一个maven项目,从命令行构建时没有问题。但是,当我用IntelliJ构建它时,我得到了一个错误:

java: FileName.java:89: cannot find symbol
symbol  : variable log
java文件中没有定义或导入日志,但存在

@Slf4j
final public class FileName {
类主体前的语句,该语句应定义日志类

在“项目结构”窗口中,为以下对象创建类:

Maven: org.slf4j:jcl-over-slf4j:1.6.1
Maven: org.slf4j:slf4j-api:1.6.6
Maven: org.slf4j:slf4j-log4j12:1.6.6
Maven: org.slf4j:slf4j-simple:1.6.6
在库下列出,并表示已下载并可用

你知道为什么要通过命令行而不是IntelliJ使用maven来构建这个问题吗?以及如何解决这个问题吗?

这大概就是你正在使用的注释。如果希望IntelliJ识别Lombok注释,则需要在IntelliJ中安装Lombok插件。否则,如果您试图使用不存在的字段,您会有什么期望?

除此之外,还要确保在以下项下勾选“
启用注释处理”
”复选框:

Preferences > Compiler > Annotation Processors
注意:从IntelliJ 2017开始,“
启用注释处理
”复选框已移至:

Settings > Build, Execution, Deployment > Compiler > Annotation Processors

在IDEA 13中,这似乎不再是一个问题,您只需要安装Lombok插件。

我可能是一个死板的话题,但一个简单的解决方案是检查您的依赖项(例如Maven的pom),如果您包括logback corelogback classic

Slf4j只是一个接口,您需要它背后的具体实现才能工作


我已经被想法欺骗了两次,现在我可以走了:D

在JDK8下编译时,我在旧版本的Lombok中看到了这个问题。将项目设置回JDK7解决了这个问题。

在Intellij 2016、2017版中,启用首选项->编译器->注释处理器对我不起作用

以下附加复选框有助于:

2019:

得到一个插件,你就可以排序了

文件>设置>插件


我刚刚安装了最新的idea verion 2108.1,在安装lombok插件并重新启动idea后发现了这个问题。这对我来说很有效:
文件->设置->构建、执行、部署->编译器->注释处理器

勾选“启用注释处理”。
应用


关闭

这不会是OP的问题,但对于任何尝试一切都没有成功的人来说:

我也有类似的症状。每当我在
mvn clean
之后构建时,它都找不到
log
,或
getXYZ()
,或
builder()
,或任何东西

[ERROR]   symbol:   variable log
[ERROR]   location: class com.example.MyClass
[ERROR] /Path/To/Some/Java/src/main/com/example/MyClass.java:[30,38] cannot find symbol
[ERROR]   symbol:   method builder()
[ERROR]   location: class com.example.MyClass
在阅读了所有关于QueryDSL/JPA/Hibernate/Lombok/IntelliJ/Maven问题的答案后,我发现罪魁祸首是在静态字段上注释的
@Getter
方法的单个静态导入

Spring 1.15.14.1发布,Intellij 2019.1.1


启用注释处理器并安装lombok插件后,它仍然无法工作。我们通过检查“将IDE构建委托给gradle”的想法选项来解决这个问题。

对我来说很有效!!!这在CircleCI和Jenkins身上都失败了

如果您是Gradle用户,请尝试将以下内容添加到依赖项中:

dependencies {
    //Other Dependencies >>

    //LOMBOK Dependencies
    annotationProcessor 'org.projectlombok:lombok'
    compileOnly 'org.projectlombok:lombok'
    testAnnotationProcessor 'org.projectlombok:lombok'
    testCompileOnly 'org.projectlombok:lombok'
}

对我来说,解决问题的办法是在Maven设置中勾选“使用插件注册表”复选框


路径是:文件->首选项->构建、执行、部署->构建工具->Maven

我尝试了几乎所有提到的答案,但没有任何效果。我的渐变身材每次都会失败。刚刚找到了这个解决方案:

添加注释处理器“org.projectlombok:lombok” 以你的身材,格雷德尔


这对我有用

从类中删除@Slf4J注释,然后重新添加它对我很有效。

1我的gradle lombok依赖项:

implementation 'org.projectlombok:lombok:1.18.10'
annotationProcessor 'org.projectlombok:lombok:1.18.10'

2在IDEA(设置)中启用“注释…”后,考虑到您已经安装了Lombok插件,这解决了我的问题,但它不是IntelliJ问题。如果您尝试在控制台下运行mvn安装,也会中断。lombok.extern中的所有注释都需要添加依赖项。此包将下一个注释分组:

  • 公共日志
  • 鞭子
  • 日志
  • JBossLog
  • 日志4
  • Log4j2
  • Slf4j
  • XSlf4j
例如,对于Slf4j,有必要将此依赖项添加到pom.xml中


org.slf4j
slf4j api
${slf4j.version}

如果您使用的是maven,请尝试将Lombok路径添加到
maven编译器插件
注释处理器列表中,如下所示

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <annotationProcessorPaths>
                    <path>
                        <groupId>org.mapstruct</groupId>
                        <artifactId>mapstruct-processor</artifactId>
                        <version>1.3.0.Final</version>
                    </path>
                    <path>
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok</artifactId>
                        <version>1.18.10</version>
                    </path>
                </annotationProcessorPaths>
            </configuration>
        </plugin>

org.apache.maven.plugins

删除每个模块中的.idea文件夹和.iml文件并重建解决方案。

我有Lombok插件,启用了注释,它是从命令行编译的-所有内容,但它仍然没有将我的项目视为maven(源文件中所有maven依赖项都是红色的)。然后我点击SHIFT两次,搜索“maven”,结果中有“reloadallmaven项目”。运行它之后,出现了Maven选项卡,我可以编译了,源代码中的所有红色下划线都消失了。

一件简单的事情,但我发现了:我没有将
@Log
添加到类中

@Log
public class YourClassName {


}

它可能会帮助某些人。

我也有同样的问题;我使用gradle和IDEA

事实证明,这是由格雷德尔的错误版本造成的

在gradle\wrapper\gradle-wrapper.properties中,它是:

distributionUrl=https\://services.gradle.org/distributions/gradle-4.8-bin.zip

但是,我在IDEA中指定的版本是

D:\Library\gradle-5.2.1


将gradle版本降低到4.10.x后,问题就消失了。

尝试在项目基础目录下创建
lombok.config
文件,并提供
lombok.log.fieldName
implementation 'org.projectlombok:lombok:1.18.10'
annotationProcessor 'org.projectlombok:lombok:1.18.10'
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>${slf4j.version}</version>
</dependency>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <annotationProcessorPaths>
                    <path>
                        <groupId>org.mapstruct</groupId>
                        <artifactId>mapstruct-processor</artifactId>
                        <version>1.3.0.Final</version>
                    </path>
                    <path>
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok</artifactId>
                        <version>1.18.10</version>
                    </path>
                </annotationProcessorPaths>
            </configuration>
        </plugin>
@Log
public class YourClassName {


}
 compileOnly 'org.projectlombok:lombok:1.18.12'
 annotationProcessor 'org.projectlombok:lombok:1.18.12'
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.30</version>
</dependency>