龙目岛在大型项目中放慢建设进程
如果我在一个项目中使用Lombok(大约15个单独的项目-EJB,Web,...),Lombok减慢了构建过程约2-3次.是否有任何解决方案,或者是Lombok的缺点? 只是为了查看项目的大小,这是关于 400 @Getter, 120 @Data, 250 @Setter和 100 @EqualsAndHashCode. 环境:IBM合理应用程序开发人员8.0.4,最新版本的Lombok(0.11.6) 有什么想法可以使其更快? 解决方案 最后,有一个可用的边缘构建,可以加快Lombok的速度!他们在加速速度方面做了很多工作,现在对我来说效果很好.构建时间几乎减半了,我不必每次保存文件. 我还进行了我的项目,以进行速度比较,而delomboked代码和用Lombok-Annotations的代码之间的差异并不多. 您可以在此处下载边缘构建: http://projectlombok.org/download-down-gold-ged.html
0 2023-05-23
编程技术问答社区
为什么要在一个实体上同时使用@AllArgsConstructor和@NoArgsConstructor?
我已经在Intellij中的Spring Boot的应用程序上看到了多个代码,并且许多代码都使用@AllArgsConstructor和@NoArgsConstructor一起使用,并且两个都是构造函数,但是每个的目的都是不同的 - @AllArgsConstructor生成一个构造函数,需要对带注释的类中的每个字段进行参数 @NoArgsConstructor生成没有参数的构造函数 那么,为什么我们在同一实体上一起使用两者?在这种情况下它们如何起作用? @Data @AllArgsConstructor @NoArgsConstructor @ToString @Entity public class Product { @Id private int id; private String name; private String type; } 解决方案 jpa规范要求所有持久类别()具有公共或受保护的No-Arg构造函数.
0 2023-05-23
编程技术问答社区
IDEA中的Spring支持与Lombok:是否支持 "导航到自动连接的依赖"?
Lombok支持用@Inject注释生成构造函数: @RequiredArgsConstructor(onConstructor = @__(@Inject)) 所以,而不是 @Service public class FooService { private final BarService barService; @Inject public FooService(BarService barService) { this.barService = barService; } } 您可以写 @Service @RequiredArgsConstructor(onConstructor = @__(@Inject)) public class FooService { private final BarService barService; } 我对该功能的问题是,它似乎打破了Intellij中的
0 2023-05-23
编程技术问答社区
Lombok不能与IntelliJ 2020.3社区版一起工作
我与Lombok合作,直到今天,我的Intellij自动更新为最新版本2020.3 11月30日,11月30日.之后,任何Lombok注释不再识别. 我的Java项目仍在使用Maven的命令行中构建,但在项目中完全忽略了注释,并且无法手动运行任何单位测试. 到目前为止我尝试过的事情: 重新安装了Lombok插件 重新启动Intellij 重新启动笔记本电脑 无效的缓存 从GitHub重新宣传该项目 检查注释处理器是否已启用 什么都没有.可能发生了什么?关于我可以尝试做什么的任何想法吗? 解决方案 总结一下Intellij首选项(CMD +,) Preferences -> Build, Execution, Deployment -> Compiler 搜索此选项: User-local build process VM options (overrides Shared options): 并添加此值: -Djps
0 2023-05-23
编程技术问答社区
一对多关系引起的休眠堆栈溢出
我创造了一对一的关系.尽管当我通过从许多侧到一侧查询对象时,一切似乎都很好,但是连接的列会抛出stackoverflow异常,我无法弄清楚为什么会发生.大概是我遵循 tutorial . 玩家实体 @Entity @Data public class Player { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Basic(optional = false) @Column(name = "player_id", updatable = false, unique = true, nullable = false) private Long id; @Column(name = "name") private String name; @Column(name = "num") private int num; @Column(
12 2023-05-16
编程技术问答社区
龙目岛与冬眠
这可能吗?没有看到太多的讨论. 解决方案 我从未尝试过Hibernate的Lombok,但我不明白为什么它不起作用. 另外,请在此处查看:另外, Lombok Project project reparts Notes notes 明确提及Hibernate. 其他解决方案 当然!根据我的经验,它效果很好.这是一个示例实体: @Entity @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class PingerEntity { // ID @Id @Getter @Setter @GeneratedValue(strategy = GenerationType.AUTO) private Long id; // USER @Getter @Setter @ManyToOne(fetch = FetchType.L
0 2023-05-16
编程技术问答社区
我如何创建一个安全的Lombok JPA实体?
我有一个@Entity,有20个字段,包括索引和Hibernate更新的时间戳: @Entity public class MyEntity { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @UpdateTimestamp private LocalDateTime updatedTime; private String .... private String .... 我有一个用于休眠的默认构造函数和一个辅助构造函数,用于设置ID和更新时间以外的所有内容. 我不需要ID或更新时间的设置器,因为我只希望Hibernate设置它们,并且可以通过反射来做到这一点. 我想尝试LOMBOK,看看我是否可以避免这里涉及很多样板,但@Data添加了getters和setter,并且不会创建相同的构造函数. 我还担心Lomboks生成的等于/hashco
2 2023-05-16
编程技术问答社区
在构造器输入参数中保留字段的注释。
Lombok在自动生成构造器时错过了Field的注释.有没有办法保留字段在构造函数输入参数中的注释? 类生成构造函数的类, @RequiredArgsConstructor(onConstructor = @__(@Inject)) public class Test { @Named("MyField") private final String field; @Named("MyHandler") private final SomeHandler handler; } 生成的类: public class Test { @Named("MyField") private final String field; @Named("MyField") private final SomeHandler handler; @Inject public Test(final Strin
2 2023-05-16
编程技术问答社区
Groovy: Lombok @NoArgsConstructor不创建默认构造器
我在我的春季启动项目中使用lombok 1.18.6,但我有@NoArgsConstructor,但仍然得到org.springframework.orm.jpa.JpaSystemException: No default constructor for entity: : com.validation.entity.Client; nested exception is org.hibernate.InstantiationException: No default constructor for entity: : com.validation.entity.Client] with root cause 下面是我的Client实体 import lombok.AccessLevel import lombok.Data import lombok.NoArgsConstructor import org.hibernate.annotations.Fetch impo
0 2023-05-15
编程技术问答社区
在龙目岛的选择
我有一个称为Address的类,看起来像这样: @Value class Address { @NotNull String userId; @NotNull String line1; String line2; private Address(Builder b) { // copy everything from builder } // override getter for line2 so that it returns Optional public Optional getLine2() { return Optional.ofNullable(this.line2); } // and a Builder public static class Builder { // builder methods } } 在这里,我被
4 2023-05-12
编程技术问答社区
包lombok不存在
我正在使用Intellij Idea 2018.2.5(社区版).这是完整的详细信息. Build #IC-182.4892.20, built on October 16, 2018 JRE: 1.8.0_152-release-1248-b19 amd64 JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o Windows 10 10.0 我在许多不同的答案中都遵循了所有建议的解决方案.但是对我没有任何帮助. 这是Lombok软件包需要完成所需设置的屏幕截图. lombok JAR在外部库中可用. 我在编译应用程序时仍然会遇到错误. 项目库: 解决方案 我在Intellij的更改GIT分支之后也遇到了相同的问题. 解决方案是: 在项目面板上(左侧)右键单击pom.xml文件 单击"添加AS Maven项目" 其他解决方案 在我的情况下,我忘记了测试依赖性: testCompi
6 2023-04-27
编程技术问答社区
NoSuchMethodError-Intellij和lombok
我在Intellij中遇到了一个奇怪的问题.我正在使用Lombok(1.18.2),Intellij(2018.2.2)和junit 5在Gradle 4多模块项目中. 我花了几个小时才能复制这个. 运行所有带有覆盖范围的测试用例. 弹出窗口后将到来 如果我按确定并重新运行单元测试案例.它将开始使用 java.lang.nosuchmethoderror getters和setters. 在此之后删除Lombok并生成Getter和Setter也没有效果. 尝试解决此问题的所有问题(启用注释处理器,Lombok插件,清洁构建),但没有运气. 编辑1: root build.gradle: implementation 'org.projectlombok:lombok:1.18.2' testImplementation('org.junit.jupiter:junit-jupiter-api:5.3.1') testImplemen
2 2023-04-27
编程技术问答社区
Gradle 7.2 Java 17 Build问题 java.lang.NullPointerException: 无法读取字段 "bindingsWhenTrue",因为 "currentBindings "为空。
测试将某些服务升级到Java 17现在是GA并遇到以下问题,以编译Gradle 7.2 Spring Boot应用程序: > Task :compileJava Note: Some input files use or override a deprecated API. Note: Recompile with -Xlint:deprecation for details. An exception has occurred in the compiler (17). Please file a bug against the Java compiler via the Java bug reporting page (http://bugreport.java.com) after checking the Bug Database (http://bugs.java.com) for duplicates. Include your program, the followi
0 2023-04-27
编程技术问答社区
Lombok在Netbeans项目中不工作
我想在项目中使用Lombok来使用@getter和@setter. 我包括使用maven: org.projectlombok lombok 1.12.6 provided netbeans的导入是可以的: import lombok.Getter; import lombok.Setter; 但是自动设置器和获取器不起作用(没有自动完成/"找不到符号..."). 奇怪的是,对于另一个项目,我的工作正常!但是我无法弄清楚差异. 我测试到: 更改Lombok版本(甚至最后一个):对于任何版本,导入不再起作用 用Maven构建项目:没关系! 使用Ecl
22 2023-04-21
编程技术问答社区
Can#39;让杰克逊和龙目山一起工作
我正在尝试结合杰克逊和伦波克.那是我的课: 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.
2 2023-04-21
编程技术问答社区
Eclipse 2021-06: ClassFormatError可访问:模块java.base不 "打开java.lang "到未命名的模块
升级到最后一个日食版本,现在我收到以下错误: Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int) throws java.lang.ClassFormatError accessible: module java.base does not "opens java.lang" to unnamed module @5d01b0d8 我尝试在没有运气的偏好下更改JDK. 解决方案 谢谢,@howlger使用JDK 16时是Lombok插件. 该推文给了我原因:/a> 解决方法: 使用Java 15开始日食或 添加--illegal-access=warn和--add-opens=java.base/java.lang=ALL-UNNAMED到您的eclipse.ini 或安装预制版本
0 2023-04-19
编程技术问答社区
是否可以在@RequiredArgsConstructor(onConstructor = @__(@Autowired))中添加限定词?
如果我想在构造函数依赖性注入上使用注释@Qualifier,我将有类似的内容: public class Example { private final ComponentExample component; @Autowired public Example(@Qualifier("someComponent") ComponentExample component) { this.component = component; } } 我知道Lombok的注释减少了样板代码,并且不必包括构造函数如下:@RequiredArgsConstructors(onConstructor=@__(@Inject)),但这仅适用于没有资格的属性. 有人知道是否可以在@RequiredArgsConstructor(onConstructor = @__(@Autowired))中添加预选赛? 解决方案 编辑: 最后
0 2023-04-14
编程技术问答社区
为什么我必须添加Lombok插件,为什么添加依赖性是不够的?
我很好奇为什么我必须添加Lombok插件.为什么将依赖性添加到pom.xml不够 解决方案 您必须了解Lombok的实际工作方式. 这里有两个部分: 注释,例如@data,@tostring,... 实际上生成的"插件" 相应的代码 您需要依赖伦波克,以便编译器/IDE可以解决注释本身. (就像您在源代码中使用的任何其他"元素"一样,需要导入注释).但这只能确保您的编译器/IDE 知道这些是有效的注释. 真正的技巧是,稍后,当代码被编译到类文件中时,Lombok的"活动"部分可用于实际生成代码. 这类似于 java bean验证.您需要在编译时导入一个JAR,以便已知所有不同的验证注释,并且可以在源代码中使用.但是,为了进行主动验证的对象,您以后需要一些其他组件来执行此操作(此处的区别是验证在运行时发生,而Lombok仅是编译时间的事情). ,请注意:"注释使用/处理"的第二种方法是更常见的路径.在您有关junit和@runwith的示例中:该注
10 2023-04-14
编程技术问答社区
映射生成的类使用来自父母的Lombok Builder而不是孩子
我有A类(域类),B类(Mongo DB存储库层类)扩展了A,并且两个都有Lombok @builder.我需要在它们之间进行转换,当我为此使用Mapstruct时,实现转换类使用生成类型的对象时的构建器.这会导致由于"不兼容类型"而导致的构建故障.如何解决这个问题? @Builder class A { } @Document @Builder class B extends A{ } @Mapper public interface ClassMapper { B mapToDocument(A domainObject); } 此代码生成以下映射文件: public class ClassMapperImpl implements ClassMapper{ @Override public B mapToDocument(A domainObject){ if(domainObject == null){ ret
0 2023-03-31
编程技术问答社区
带有lombok注解的继承得到错误
在我的项目中,Lombok用于避免为课程编写Getters和Setters. 我有两个类Child扩展Parent: @Value @Builder @AllArgsConstructor @JsonIgnoreProperties(ignoreUnknown = true) public class Parent { @Nonnull @JsonProperty("personId") private final String personId; @JsonProperty("personTag") private final String personTag; ... } 和 @Value @Builder @AllArgsConstructor @JsonIgnoreProperties(ignoreUnknown = true) public class Child extends Parent { @No
4 2023-03-30
编程技术问答社区