尝试使用 lombok 生成方法时遇到问题。问题是“该类型的方法/构造函数/等未定义...”。对于位于 src/main/java 中的任何类,我都会遇到它,但是,当在 src/test/java 中使用相同的类时,在测试过程中我没有收到任何错误,并且结果是正确的。让我进一步解释一下情况:
如果我尝试在 src/main 中的另一个类中使用生成的方法来获取一些数据,则会抛出有关未定义方法的错误。
当我删除 lombok 方法并编写自己的方法时,没有任何问题。
如果我在 src/test/java 目录中的类中使用 lombok 生成的方法,则不会出现错误
代码片段:
public class DroolsRuleParsing {
public static String checkLombokMethods(RuleFormat rule) {
String constraintItems = null;
if (rule.getRuleType().equalsIgnoreCase("item")) {
constraintItems = "$hit_idList contains $appliedrule_hitId";
}
if (rule.getRuleType().equalsIgnoreCase("hit")) {
constraintItems = "$hit_id == $appliedrule_hitId";
}
return constraintItems;
}
}
错误:RuleFormat 类型的 getRuleType() 方法未定义
如果我删除此方法并尝试在 src/test/java 中使用 .getRuleType() ,则不会出现错误:
@Test
public void testRuleGeneration() throws Exception {
LOG.info("Testing rule generation from JSON");
RuleFormat RuleData = new RuleFormat();
RuleData.setId("unique_id_4");
RuleData.setUid("rule_4");
RuleData.setName("Rule 4");
RuleData.setVersion("ver1");
RuleData.setRuleType("item");
LOG.info("check lombok getters {}", RuleData.getRuleType());
2024-09-26 17:06:12,572 [main] INFO check lombok getters item
我正在使用 mvn clean 测试; mvn clean install 检查创建的方法是否有效。
我已经尝试过:
按照官方网站上的安装指南安装Lombok - https://projectlombok.org/setup/maven - 说明在这里
摆弄pom文件中的配置,一些建议从pom.xml中删除“范围” - 没有帮助
使用 Lombok 重新安装 VS code 扩展(Lombok 对 VS Code 的注释支持)
当我使用 Drools“入门”部分的测试项目时,pom.xml 中的打包值设置为 kjar。通过这种设置,lombok 方法不起作用,我无法使它们工作。将打包切换为 jar 解决了一个错误,尽管 Drools 规则在同一个项目中停止工作。