【问题标题】:Lombok not working in a Netbeans projectLombok 不在 Netbeans 项目中工作
【发布时间】:2016-04-26 08:25:06
【问题描述】:

我想在一个项目中使用Lombok来使用@Getter和@Setter。

我包括使用 Maven:

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

Netbeans 可以导入:

import lombok.Getter;
import lombok.Setter;

但是自动设置器和获取器不起作用(没有自动完成/“找不到符号...”)。

奇怪的是,对于另一个项目,我的工作正常!但我想不出区别。

我测试过:

  • 更改 lombok 版本(甚至是最后一个):对于任何版本,导入都不再起作用

  • 使用 Maven 构建项目:没关系!

  • 使用 Eclipse:没关系! (但不幸的是,我是唯一一个做出决定的人)

=> 所以我确定这是与 Netbeans 相关的问题

  • 启用注释处理,正如我在教程中看到的那样=>我的项目属性中没有这样的选项

有什么想法吗?

【问题讨论】:

    标签: netbeans lombok


    【解决方案1】:

    在使用 Apache Maven 3.5.4 的 Netbeans 8.2 中,使用 Lombok 1.18.4 或更早版本的 1.16.16

    在 Netbeans 10.0/9.0 中使用 Apache Maven 3.5.4 使用 Lombok 1.18.4,当在 Netbeans 10.0/9.0 中使用 Compile On Save 时,旧版本的 Lombok 是 really buggy /em>

    我将 Lombok 更新为新的 version

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <scope>provided</scope>
        <version>1.18.8</version> <!--1.18.8 for Netbeans 9/10 OR 1.16.16 for Netbeans 8 with Java 8 -->
    </dependency>
    

    注意

    • 对于 maven-compiler-plugin,删除所有要执行的 annotationProcessorPaths 在 maven-compiler-plugin 中使用 Lombok
    • 删除所有 Lombok maven 插件

    这不是必需的,因为 Maven 和 Netbeans 开箱即用。你只需要在 Maven 中正确的 Lombok 依赖。

    【讨论】:

    • 没错,在 Netbeans 9 RC1 中使用 1.18.0。我已经添加了细节。它也适用于 Netbeans 9 VC3 dist.apache.org/repos/dist/dev/incubator/netbeans/…
    • 也不行 :( 我已经清理了目标,设置文件,重新导入了项目...
    • 谢谢!它现在可以工作了,我使用的是 Netbeans 9 (3.3.9) 的捆绑 Maven。我已经切换到最新版本(3.5.4),现在一切都很好:)
    • 不适用于 Netbeans 10.0。我仍然想知道为什么 “启用注释处理” 选项在 netbeans 10.0 中不存在
    • @rjdkolb。我懂了。有趣的是,这解决了问题。它现在甚至适用于最新版本,即 lombok(v1.18.8)、maven-compiler-plugin(v3.8.1)、Apache maven (v3.6.1)、Netbeans(v10)。谢谢大佬。
    【解决方案2】:

    我在https://groups.google.com/forum/#!topic/project-lombok/xbgzA86pvJs找到了解决方案

    => maven-compiler-plugin 的更新版本是使其工作的唯一方法

    【讨论】:

    • 更新到 maven-compiler-plugin 3.8.0 为我解决了这个问题。
    【解决方案3】:

    这对我们有用:

    • 从 Lombok 依赖项中删除 &lt;scope&gt;provided&lt;/scope&gt;
    • 清理并构建项目
    • 更改 Lombok 版本(我们从 1.16.20 更改为 1.16.16
    • 清理并构建项目
    • 恢复龙目岛版本并放回&lt;scope&gt;provided&lt;/scope&gt;
    • 清理并构建项目

    【讨论】:

    • 哇。对我来说很好的解决方案
    • 非常感谢您分享这个奇怪的解决方法!
    【解决方案4】:

    配置 pom

    <properties>
        <src.dir>src/main/java</src.dir>
    </properties>
    
    <profiles>
        <profile>
            <id>lombok-build</id>
            <properties>
                <src.dir>${project.build.directory}/generated-sources/delombok</src.dir>
            </properties>
        </profile>
    </profiles>
    
    <dependencies>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.16.8</version>
        <scope>provided</scope>
    </dependency>
    </dependencies>
        <build>
            <sourceDirectory>${src.dir}</sourceDirectory>
        <plugins>
            <plugin>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok-maven-plugin</artifactId>
                <version>1.16.16.0</version>
                <executions>
                    <execution>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>delombok</goal>
                        </goals>
                        <configuration>
                            <sourceDirectory>src/main/java</sourceDirectory>
                            <addOutputDirectory>false</addOutputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    

    然后,将 lombok-build 指定为 Project Properties->Actions->Activate Profiles 下各种操作(构建、调试等)的活动配置文件。

    blog 有一个 github 示例项目和带有图片的配置以使用最新版本的 maven+netbeans+lombok,对我有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-20
      • 1970-01-01
      • 1970-01-01
      • 2014-11-19
      • 1970-01-01
      • 2021-12-21
      相关资源
      最近更新 更多