问题标签 [lombok]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4224 浏览

playframework - 龙目岛与玩 2

Lombok 与 Play Framework 2 的集成怎么样?我真的很喜欢Lombok,它使我的代码更具可读性和更少的样板。Play Framework 也很棒。但是,如果您要混淆它们,则会有很大的麻烦。

主要原因是在域类之前编译的 play 项目中的 scala 模板。因此,Lombok 本身就是编译器的 hack,此时不会生成访问器。

问题是:是否有任何方法可以使它起作用?

我在Google Groups中发现了一些讨论,但它们没有提供任何合理的解决方案。那么你有没有成功呢?

还有.. 为什么 Play Framework 项目的人不提供一些类似 Lombok 的解决方案?无论如何,Play 充满了代码生成魔法和影子编译……那么,为什么不呢?

0 投票
1 回答
3449 浏览

java - 编译 Java/Scala 混合项目和 Lombok 时出错

我正在尝试编译一个 Maven Java/Scala 混合项目,该项目具有一个依赖于带有 lombok 注释的 Java bean 的 Scala 类。我尝试将 lombok jar 文件添加到 Scala 编译器的引导类路径以及 lombok 代理,但编译器仍然无法找到生成的 getter。Scala 编译器有没有办法识别 lombok 注释?如果没有,什么是好的解决方法?

请注意,我试图避免引入另一个 maven 项目只是为了首先编译这个 bean,因为 bean 在逻辑上属于同一个项目。我也不能在 Scala 中重写 bean,因为它后来在 GWT 项目中使用。

谢谢,

0 投票
5 回答
9027 浏览

java - 如何在 Maven 编译期间忽略 Java 源目录?

我正在尝试使用Lombok Maven 插件来确保在使用Lombok时正确创建 Javadocs 。

Lombok Maven 在编译之前引入了一个新的代码生成目标。在我的配置中,我的sourceDirectory(带有 Lombok 注释的 Java src/main/java)被处理以在target/generated-sources/delombok.

但是,sourceDirectory现在 in 中的每个文件都有一个对应的(名称相同的)文件 in target/generated-sources/delombok,导致由于类重复而导致编译失败。

如何告诉 Java 编译器忽略 中的源sourceDirectory

请注意,默认的 Lombok Maven 配置会让开发人员将 Java(带有 Lombok 注释)放在src/main/lombok文件夹中,而不是src/main/java. 但是,我不希望这样做,因为它会混淆 IDE 并且我的代码编译得很好(如果我删除了 Maven 插件)。

另请注意,简单地重新定义sourceDirectory也会让 IDE 感到不安(它们不再知道在哪里可以找到 Java 源代码!)。

0 投票
24 回答
231759 浏览

java - Lombok 没有生成 getter 和 setter

我只是尝试将一个基于 Maven 的项目发送到另一台计算机和 HORROR,到处都是红色标记!

但是,mvn clean install建设得很好。

很快,我注意到 Lombok 并没有为我的类生成 getter 和 setter,尽管Eclipse 可以正确识别@Getterand 。@Setter

两台计算机使用相同的 Maven 版本 (3.0.4) 但不同的 JDK(1.6_23 和 1.6_33)。他们都使用 Eclipse Indigo 32 位。你知道如何解决这个问题吗?

0 投票
1 回答
3684 浏览

intellij-idea - Lombok 在 IntelliJ 中使用“val”类型

您好我在一个项目中使用 Project Lombok(版本 0.11.2)。我安装了 Intellij 和 Eclipse (STS),lombok 与两个 IDE 集成(STS,通过 lombok JAR,IntelliJ 通过插件 [版本 0.4,22/01/12 发布])。

当我尝试在 IntelliJ 中使用“val”数据类型时,它无法识别结果类型,但是相同的代码在 STS 中有效。

这是 IntelliJ 插件的问题,还是插件不支持此功能?

val 类型是在 lombok 0.10.0 中添加的,因此不是新功能。

0 投票
2 回答
1621 浏览

java - 用于可变集合的 Lombok 惰性吸气剂

我有一个有一个集合的类:

但是我不能在List. 原因是该属性是一个AtomicReference. 警告/错误是:

如何对集合执行添加/删除操作?

0 投票
0 回答
512 浏览

java - 安装 Lombok 后 Eclipse Indigo 未运行项目

我最近将 Lombok(版本 0.11.0)安装到我的 Eclipse Indigo 安装中,现在我在 Eclipse 中的所有项目都不再从运行和调试启动。

当我尝试运行一个项目时,我得到的错误如下

这向我表明它找不到我正在运行的项目的主类文件,但它在运行和调试配置中正确引用了该项目,该文件在项目中并且我检查了 /bin 文件夹以确保班级就在那里(就是这样)。

我唯一能想到的可能会或可能不会导致问题的是,在安装 Lombok 之后,/bin 文件夹没有包含正确的内容,而是在其中构建了我的 JUnit 测试用例。

我已经多次清理了我的整个项目集并卸载/重新安装了 Lombok。我已经重置了我的电脑,但仍然没有乐趣。Eclipse 使用 jdk 1.6.30 运行。

更新:问题似乎在于该项目是否引用了另一个使用 Lombok 的项目,或者该项目直接使用 Lombok。删除项目对 Lombok 的引用允许项目在 Eclipse 中正常执行。

0 投票
1 回答
1696 浏览

java - 如何在 Java 项目中使用 Project Lombok

我想特别尝试龙目岛@NoArgsConstructor@Getter@Setter

但是,当我尝试使用它并执行以下操作时:

我在这里错过了什么吗?

错误:

0 投票
2 回答
1047 浏览

android - Android Lombok IntelliJ 集成

我正在尝试将 lombok 包含在我的 android 项目中,我使用 IntelliJ IDEA 作为我的 IDE。该项目是用maven构建的。我已经添加了 lombok 依赖项并使用 maven 编译项目成功。

在 IntelliJ 中,我安装了也可以使用的 lombok 插件——我看到了生成的 getter/setter。

然而,当我尝试在 IntelliJ 中制作项目时,构建失败:

错误:找不到符号方法 setName(String)

在标准 Java 环境中,将 lombok 添加到类路径就足以编译项目。android环境中是什么导致编译失败?

编辑:我在 IntelliJ Bugtracker 上创建了一个问题:http: //youtrack.jetbrains.com/issue/IDEA-94749

0 投票
3 回答
10366 浏览

maven - 如何让 Maven 从修改的代码(delombok'd)而不是从 src/main/java 编译

使用 delombok maven 插件将我的所有文件放在“target/generated-sources/delombok”中。当我尝试运行 maven 编译器时,它会抱怨重复的类,所以我按照这个问题的建议将 addOutputDirectory 设置为 false 。现在的问题是 delombok 的文件被忽略了,因此编译器抱怨缺少方法。

如何告诉 maven 编译器插件忽略默认的“src/main/java”目录,而是使用“target/generated-sources/delombok”目录进行编译?

当编译器运行时,运行 mvn compile -X 会产生以下输出:

然后再往下打印命令行选项,我可以看到 -sourcepath 参数是:-sourcepath C:\Users\Jamey.Holden\workspace\Apollo\Website\src\main\java;C:\Users\Jamey.Holden\workspace\Apollo\Website\target\generated-sources\java; 这些都不是 delombok 目录,所以它在尝试编译时找不到所有的 getter 和 setter 是很公平的。

更新 我想我已经找到了问题的根源。我正在设置 proc=none 以防止注释处理,因为我正在使用 queryDSL 生成元实体,并且当未设置此项以避免注释处理时,编译器发现重复实体错误。删除 proc=none 和 querydsl 注释处理器解决了这个问题。现在我只是去让 m2e 再次工作。