【发布时间】:2015-05-17 12:49:50
【问题描述】:
是否可以在另一个参数中使用定义的参数?例如我试过这个,发现这是不允许的:
@Parameter(required = true)
private String semester;
@Parameter(defaultValue = "${basedir}/src/main/resources/" + semester)
private String inputFolder;
我的第二次尝试是将使用参数作为表达式:
@Parameter(defaultValue = "${basedir}/src/main/resources/${semester}")
private String inputFolder;
这也是失败的。下一次迭代:我在插件执行时将参数写为属性:
@Parameter(defaultValue = "${project}", readonly = true, required = true)
private MavenProject project;
@Override
public void execute() throws MojoExecutionException, MojoFailureException
{
Properties props = project.getProperties();
props.put("semester", semester);
}
这也不起作用,因为参数是在execute() 执行之前注入的。我得到的唯一解决方案是自己替换表达式:
inputFolder = inputFolder.replace("${semester}", semester);
outputFolder = outputFolder.replace("${semester}", semester);
【问题讨论】: