好吧,经过多次调试,我能够根据AbstractConfigurationConverter的工作原理,特别是fromExpression方法来计算它。
要获得属性,您需要将以下内容添加到您的mojo中:
@Parameter(defaultValue = "${session}")
protected MavenSession session;
@Parameter(defaultValue = "${mojoExecution}")
protected MojoExecution mojoExecution;
从那里,您现在可以创建一个求值器和配置(也许您可以直接将它们注入,我不确定),然后您可以这样做:
PluginParameterExpressionEvaluator expressionEvaluator = new PluginParameterExpressionEvaluator(session, mojoExecution);
PlexusConfiguration pomConfiguration = new XmlPlexusConfiguration(mojoExecution.getConfiguration());
for (PlexusConfiguration plexusConfiguration : pomConfiguration.getChildren()) {
String value = plexusConfiguration.getValue();
String defaultValue = plexusConfiguration.getAttribute("default-value");
try {
String evaluated = defaultIfNull(expressionEvaluator.evaluate(defaultIfBlank(value, defaultValue)), "").toString();
System.out.println(plexusConfiguration.getName() + " -> " + defaultIfBlank(evaluated, defaultValue));
} catch (ExpressionEvaluationException e) {
e.printStackTrace();
}
}