Tag: lombok

Lombok @Builderinheritance解决方法

Lombok @Builder不适用于inheritance用例: 例如 class Foo{ protected int xyz1; ….. protected String xyz7; } class Bar extends Foo{ } 对于给定的用例,Lombok将无法生成设置Foo类中定义的参数值的方法。 解决方法是: 手动创建Bar的构造函数。 在构造函数上放置Builder注释。 有更好的解决方法吗?

访问项目lombok注释方法时,Maven构建无法找到符号,

我第一次使用项目lombok并且我在运行构建时通过maven编译项目时遇到问题我收到错误,其中调用带有项目lombok注释的方法被调用。 这是带注释的参数: private @Getter @Setter String paymentNonce = null; 例如,在这一行中,maven打破了构建: if (!StringUtilities.isNullOrEmpty(getPaymentNonce())) { 这是我的maven依赖 org.projectlombok lombok 1.16.4 maven错误: [INFO] Compiling 158 source files to C:\java\repos\luna\cloudflow\cloudflow-ejb\target\classes [INFO] ————————————————————- [ERROR] COMPILATION ERROR : [INFO] ————————————————————- [ERROR] \java\repos\luna\cloudflow\cloudflow-ejb\src\main\java\si\arctur\controller\PaymentProcessor.java:[94,38] error: cannot find symbol [ERROR] \java\repos\luna\cloudflow\cloudflow-ejb\src\main\java\si\arctur\controller\PaymentProcessor.java:[97,106] error: cannot find symbol [ERROR] \java\repos\luna\cloudflow\cloudflow-ejb\src\main\java\si\arctur\controller\PaymentProcessor.java:[142,2] error: cannot find symbol [ERROR] \java\repos\luna\cloudflow\cloudflow-ejb\src\main\java\si\arctur\controller\ShoppingCart.java:[27,6] error: cannot […]

不能让jackson和龙目岛一起工作

我正在尝试结合jackson和龙目岛。 这些是我的课程: package testelombok; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.AllArgsConstructor; import lombok.Value; import lombok.experimental.Wither; @Value @Wither @AllArgsConstructor(onConstructor=@__(@JsonCreator)) public class TestFoo { @JsonProperty(“xoom”) private String x; private int z; } package testelombok; import com.fasterxml.jackson.databind.ObjectMapper; import com.xebia.jacksonlombok.JacksonLombokAnnotationIntrospector; import java.io.IOException; public class TestLombok { public static void main(String[] args) throws IOException { TestFoo tf = new TestFoo(“a”, 5); […]

编写自定义Lombok Annotation处理程序

我想编写自定义Lombok Annotation处理程序。 我知道http://notatube.blogspot.de/2010/12/project-lombok-creating-custom.html 。 但是当前的lombok jar文件不包含许多.class文件,而是包含名为.SCL.lombok的文件。 我发现,.SCL.lombok文件是.class文件,Lombok的构建脚本在生成jar文件时重命名它们,而ShadowClassLoader能够加载这些类 – 而且首字母缩略词SCL似乎来自于此。 似乎这样做的原因只是“避免使用基于SCL的jar污染任何项目的命名空间。IDE中的自动完成程序不会提出除实际公共API之外的任何内容。” 我只能通过编译我的自定义处理程序 解压缩lombok.jar的内容 将.SCL.lombok文件重命名为.class 将生成的目录添加到编译类路径中 另外,为了能够使用我的自定义处理程序,我需要创建一个包含lombok类和我的自定义处理程序的新fat jar。 自定义lombok类加载器实质上阻止在其他多个jar中添加自定义处理程序。 这是扩展Lombok的唯一方法吗? 或者我错过了什么? 我使用以下的buildscript apply plugin: ‘java’ repositories { jcenter() } configurations { lombok compileOnly } def unpackedAndRenamedLombokDir = file(“$buildDir/lombok”) task unpackAndRenameLombok { inputs.files configurations.lombok outputs.dir unpackedAndRenamedLombokDir doFirst { mkdir unpackedAndRenamedLombokDir delete unpackedAndRenamedLombokDir.listFiles() } doLast { copy { from […]

Eclipse Lombok注释未编译…为什么?

我的项目有问题。 它是一个Spring CRUD RestFul API,它公开了提供Json数据的服务。 我使用JDK-7,Eclipse-Neon和Maven来编码,构建并将项目部署到JBossEAP 6.4服务器中。 每件事都运作良好,服务正确响应。 所以我决定添加Lombok,以减少锅炉代码并提高代码的可读性。 顺便说一下,我之前在另一个项目上使用了龙目岛,并且运行良好。 这是我的问题,包括龙目岛之后: – 当我使用Maven(mvn clean install)时,一切进展顺利,项目部署和工作完全正常。 – 当项目由Eclipse构建时,Lombok注释(即:@Data等)不包含在* .class中。 因此Eclipse部署的耳朵工作正常但是所有实体都没有任何getter / setter等等。 我知道Eclipse配置正确,因为我的代码上没有任何关于Lombok的警告,eclipse的大纲视图显示了我生成的方法。 有没有人对这类问题有所了解?

Maven Groovy和Java + Lombok

我正在尝试将groovy添加到利用Lombok的现有Java Maven项目中。 不幸的是,当我使用下面的pom片段启用groovy-maven-eclipse编译器时,我的lombok注释的java文件无法编译。 据我所知,Lombok根本没有参与java文件的编译。 maven-compiler-plugin 2.3.1 groovy-eclipse-compiler true org.codehaus.groovy groovy-eclipse-compiler 2.6.0-01-SNAPSHOT 我还应该指出,在eclipse中(使用m2e)一切正常。 当我尝试做一个mvn包时,我的问题出现了。

如何在Maven编译期间忽略Java Source目录?

我正在尝试使用Lombok Maven插件来确保在使用Lombok时正确创建Javadoc。 Lombok Maven在编译之前引入了新的代码生成目标。 在我的配置中,我的sourceDirectory (带有Lombok注释的Java, src/main/java )被处理以在target/generated-sources/delombok创建Java(没有Lombok注释)。 但是, sourceDirectory每个文件现在在target/generated-sources/delombok都有一个相应的(同名)文件,导致由于重复的类而导致编译失败。 如何告诉Java编译器忽略sourceDirectory的源代码? 请注意,默认的Lombok Maven配置会让开发人员将Java(带有Lombok注释)放在src/main/lombok文件夹中而不是src/main/java 。 但是,我不希望这样做,因为它混淆了IDE并且我的代码编译得很好(如果我删除了Maven插件)。 另请注意,简单地重新定义sourceDirectory也会扰乱IDE(他们不再知道在哪里可以找到Java源代码!)。

指定注释处理器的顺序

我正在尝试在我的Java项目上运行Dagger 2和Lombok。 当然,龙目岛必须首先运行,但实际上它是否真的有机会。 起初我怀疑我可以通过类路径中库jar的相应位置来指定顺序,但是该顺序显然会被忽略。 有没有办法指定它们以某种方式运行的顺序,或者我只是不得不忍受不能组合两个AP? 我制作了一个SSCCE测试用例 。 一个简单的git clone & mvn compile足以certificate这个问题 – 如果你在App.java中注释第18行并取消注释第20-21行,它就会编译,即使第18行中的Lombok表示法创建了一个相同的构造函数。 问题是龙目岛似乎追随Dagger。

如何让Lombok和AspectJ一起工作?

我刚刚在关于龙目岛的SO上发布了这个问题而没有生成我的getter / setter。 事实certificate它与AspectJ相冲突。 如果我禁用AspectJ,则适当地生成getter / setter。 我的猜测是ajc编译器无法识别lombok。 Lombok和AspectJ是互斥的吗? 这两种技术是否协同工作?