gpt4 book ai didi

java - Maven MOJO - 在另一个参数中使用一个参数

转载 作者:行者123 更新时间:2023-12-01 11:32:34 25 4
gpt4 key购买 nike

是否可以在另一个参数中使用定义的参数?例如,我尝试了这个并发现这是不允许的:

@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() 之前注入(inject)的。我找到的唯一解决方案是自己替换表达式:

inputFolder = inputFolder.replace("${semester}", semester);
outputFolder = outputFolder.replace("${semester}", semester);

最佳答案

正如您已经发现的:不,您不能像这样重复使用它。代码表明有一个学期的变量文件夹(您真的需要重用它吗?)。这有点奇怪:只需将 inputDirectory 指向正确的文件夹,使该参数成为必需的。不太明显的解决方案是用代码来完成:

File semesterFolder = new File( inputFolder, semester);

确保您很好地记录了参数,例如如何使用学期参数来获取此文件夹。

关于java - Maven MOJO - 在另一个参数中使用一个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30287034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com