【问题标题】:Lombok + Java 13 module + NetBeans 11 + MavenLombok + Java 13 模块 + NetBeans 11 + Maven
【发布时间】:2020-04-15 03:04:59
【问题描述】:

好吧,

我正在尝试让 lombok 使用 NetBeans 11 + JdK 13 处理一个 maven 项目。IDE 似乎看到了 lombok,它在 @Getter 注释方法上自动完成,但在编译时 lombok 看起来不存在

在我的 pom 上:

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

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>2.0.0-alpha1</version>
    </dependency>

模块信息

module uno.anahata.rpc {
    requires static org.slf4j;
    requires static lombok;
    requires org.apache.commons.lang3;    
}

编译器输出

-d C:\Users\Pablo\Documents\NetBeansProjects\anahata-rpc\target\classes -classpath C:\Users\Pablo\Documents\NetBeansProjects\anahata-rpc\target\classes; --module-path C:\Users\Pablo\.m2\repository\org\projectlombok\lombok\1.18.10\lombok-1.18.10.jar;C:\Users\Pablo\.m2\repository\org\slf4j\slf4j-api\2.0.0-alpha1\slf4j-api-2.0.0-alpha1.jar;C:\Users\Pablo\.m2\repository\org\apache\commons\commons-lang3\3.9\commons-lang3-3.9.jar; -sourcepath C:\Users\Pablo\Documents\NetBeansProjects\anahata-rpc\src\main\java;C:\Users\Pablo\Documents\NetBeansProjects\anahata-rpc\target\generated-sources\annotations; -s C:\Users\Pablo\Documents\NetBeansProjects\anahata-rpc\target\generated-sources\annotations -g -deprecation -target 13 -source 13 --module-version 13.0.0-SNAPSHOT
File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent!
incrementalBuildHelper#beforeRebuildExecution
Compiling 7 source files to C:\Users\Pablo\Documents\NetBeansProjects\anahata-rpc\target\classes
incrementalBuildHelper#afterRebuildExecution
-------------------------------------------------------------
COMPILATION ERROR : 
-------------------------------------------------------------
uno/anahata/rpc/client/RpcInvocationHandler.java:[54,9] cannot find symbol
  symbol:   variable log
  location: class uno.anahata.rpc.client.RpcInvocationHandler
uno/anahata/rpc/client/RpcInvocationHandler.java:[68,9] cannot find symbol
  symbol:   variable log
  location: class uno.anahata.rpc.client.RpcInvocationHandler
2 errors 

【问题讨论】:

  • 我猜你在模块信息文件中需要requires static lombok;(如果你的代码是模块化的)。
  • 试过了,还给maven项目加上了provided scope的依赖,NetBeans编辑器好像是在编译的时候买的,编译器显示编译错误
  • 您是否尝试将 lombok 设置为默认编译范围?
  • 是的,试过了,没用
  • 编译器只抱怨缺少log 字段,而不抱怨getter。 RpcInvocationHandler 类上有 @Slf4j 注释吗?

标签: java maven netbeans lombok


【解决方案1】:

你可以尝试在 annotationProcessorPaths 中移动 lombok 依赖并进行干净的构建

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.0</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <encoding>UTF-8</encoding>
                <annotationProcessorPaths>
                    <path>
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok</artifactId>
                        <version>1.18.10</version>
                    </path>
                </annotationProcessorPaths>
            </configuration>
        </plugin>
    </plugins>
</build>

【讨论】:

【解决方案2】:

您是否为 Lombok 启用了 Netbeans 注释处理器 https://netbeans.org/kb/docs/java/annotations-lombok.html ?

【讨论】:

  • 那是针对非maven项目的(nb nuild)
  • @pranahata 也许我错了,但我在 IntelliJ IDEA 中遇到了类似的问题。根本原因是禁用注释处理器。错误信息完全相同。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-21
  • 2019-08-10
  • 1970-01-01
  • 2020-06-19
  • 2022-06-23
  • 2020-07-09
相关资源
最近更新 更多