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

时间:2015-12-02 08:43:05

标签: java testing lombok intellij-lombok-plugin

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

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

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

虽然没有其他的setter和getter,但是龙目岛的一个似乎jPopulator看不到它们。代码编译得很好,应用程序运行完全正常。

有没有办法让这两个lib一起工作?

更新 似乎问题不在于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 VS

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

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

1 个答案:

答案 0 :(得分:0)

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

jPopulator旨在填充标准 Java Bean。

关于如何通过maven central使用当前快照版本,记录为here

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