【发布时间】:2021-11-05 14:43:15
【问题描述】:
我写了一个插件,想以不同的方式对待目标 vrs(检查版本), 取决于执行/命令行。
在我添加的代码中
@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;
}
我希望,如果没有在 pom 的配置中指定versionsWarnOnly,我只会得到指定的defaultValue。
问题是,这不会发生,在那种情况下它总是错误的。
如果我在配置中配置 pom中的插件
<versionsWarnOnly>true</versionsWarnOnly>
如果我构建了阶段mvn validate,那么这就完成了(并且取得了一些成功)。
如果我通过目标mvn latex:vrs 从命令行调用目标,甚至是正确的。
但如果我在类似的执行中指定,
<execution>
<id>validate_converters</id>
<phase>validate</phase>
<configuration>
<versionsWarnOnly>true</versionsWarnOnly>
</configuration>
<goals>
<goal>vrs</goal>
</goals>
</execution>
同样没有效果。 我不知道我做错了什么 或者你需要什么样的信息来帮助我。
【问题讨论】:
-
更新:
@Parameter(name = "versionsWarnOnly", defaultValue = "xxx") private String versionsWarnOnly = "yyy";显示 defaultValue 不起作用,但直接赋值起作用。 -
注入不是通过 setter/getter 完成的...所以最好使用
execute()方法并打印出那里的值...除了没有完整代码的情况外,很难看是否/在哪里一个问题可能是...... -
@khmarbaise.. 确实是一个不错的博客...好吧,我在执行时做了一些打印输出。这就是我收到结果的方式。但是你所说的“注入不是通过 getter/setter 完成的”是什么意思?
-
getter和setter不用于参数注入...通过属性注入完成...