如何使 benas/jPopulator 与 lombok 一起工作

How to make benas/jPopulator work with lombok

在我的项目中,我使用 lombok 库来隐藏代码的样板部分。目前我正在尝试自动生成大量数据,因此我为此选择了 benas/jPopulator 库 - 这似乎正是我需要的。

问题是我遇到了以下异常:

java.lang.NoSuchMethodException: Property '***' has no setter method in class ***

虽然没有其他 setter 和 getter,但 Lombok 的 jPopulator 似乎看不到它们。虽然代码编译良好并且应用程序 运行 完全没问题。

有没有办法让这两个库协同工作?

更新 问题似乎不在于 jPopulator 本身,而在于底层库 org.apache.commons.beanutils.PropertyUtilsBean,它无法找到访问器方法并失败。在 jPopulator 主版本的另一边,人们开始自己设置属性:

https://github.com/benas/jPopulator/blob/jpopulator-1.2.0/src/main/java/io/github/benas/jpopulator/impl/PopulatorImpl.java#L185 对比

https://github.com/benas/jPopulator/blob/master/jpopulator-core/src/main/java/io/github/benas/jpopulator/impl/PopulatorImpl.java#L260

唯一的问题是有没有办法通过 maven 使用 master 版本?

issue 42 中所述,问题出在 lombok 的 @Accessors(chain = true) 上,它生成流畅的 getter 和 setter 不符合 Java Bean 标准定义。这就是为什么 apache common 的 PropertyUtils.setProperty 找不到标准的 setter.

jPopulator 旨在填充 standard Java Beans。

关于如何通过maven central使用当前快照版本,文档here

希望这对您有所帮助。 亲切的问候。 马哈茂德