Maven自定义插件如何调用执行特定配置,参数配置不生效问题问询
问题1:未配置参数时默认值始终为false
原因是你使用了基本数据类型boolean作为参数类型:
- 基本类型
boolean的JVM默认初始值为false - Maven参数注入逻辑只会在字段为
null时,才会自动读取@Parameter注解的defaultValue进行赋值,基本类型不可能为null,因此注解配置的默认值不会生效。
修复方案:将字段类型替换为包装类Boolean:
@Parameter(name = "versionsWarnOnly", defaultValue = "true") private Boolean versionsWarnOnly; public Boolean getVersionsWarnOnly() { System.out.println("invoked get"); return this.versionsWarnOnly; } public void setVersionsWarnOnly(Boolean versionsWarnOnly) { System.out.println("invoked set"); this.versionsWarnOnly = versionsWarnOnly; }
问题2:execution块内的配置不生效
符合预期,Maven的execution配置是绑定到生命周期的配置,仅在触发对应生命周期阶段时生效:
- 你直接执行
mvn latex:vrs命令单独调用插件目标时,只会读取插件全局configuration配置,不会读取execution块内的配置 - 要验证execution配置是否生效,需执行绑定的生命周期阶段命令
mvn validate,此时配置会正常生效。
如果执行mvn validate仍不生效,检查两个点:
@Mojo注解声明的goal名称是否为vrs,无拼写错误- 不存在其他同id的execution配置覆盖当前配置
内容的提问来源于stack exchange,提问作者user2609605
相关产品推荐
相关产品推荐

