Maven Mojo:属性的默认值中的转义字符

时间:2012-05-11 20:45:20

标签: maven maven-plugin

Mojo属性的默认值以:

开头
${user.home}

我会将值写入属性文件,然后应该在运行时替换它,而不是在构建时。

我试过了:

default-value="${user.home}/..."
default-value="\${user.home}/..."
default-value="\\${user.home}/..."

但它总是被运行构建的用户的user.home所取代。

有没有办法避免更换?

编辑:

有问题的代码在自定义Maven Mojo中:

public class MyCustomMojo extends AbstractMojo {

    ...

    /**
     * @parameter expression="${some-expression}" default-value="\\${user.home}/some-path"
     * @required
     */
    private String userdir;

    ...

    @Override
    public void execute() throws MojoExecutionException, MojoFailureException {

        ...

        Properties configProperties = new Properties();
        configProperties.setProperty(Main.USER_DIR_PROPERTY, userdir);
        Path propertiesFilePath = confPath.resolve(propertiesFileName);
        try (BufferedOutputStream bos = new BufferedOutputStream(Files.newOutputStream(propertiesFilePath))) {
            properties.store(bos, "");
        }

        ...

    }
}

1 个答案:

答案 0 :(得分:0)

在明确表示你正在谈论插件的创建之后......接下来的意思是,在构建执行mojo期间,default-value将被替换。我不确定你想要达到什么,但我认为你是用表达方式把它弄错了。此外,默认值的想法是它将被替换,包括。系统属性。也许你可以提供补充信息,看看你想要达到的目标。