2012-05-11 1 views
0

のデフォルト値で文字をエスケープ:Mavenのモジョ:モジョプロパティのデフォルト値はで始まるプロパティ

${user.home} 

私はプロパティファイルに値を書き込みますし、それがその後、実行時ではない交換する必要がありますビルド時に

は、私が試した:

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

それは常にビルドを実行しているユーザーののuser.homeと置き換えます。

交換を避ける方法はありますか?

編集:

問題のコードは、カスタムでMavenのモジョです:あなたがして、プラグインの作成について話していることが明らかに来ていた後...ポイントが来ている

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, ""); 
     } 

     ... 

    } 
} 

答えて

0

default-valueは、mojoのビルド実行中に置き換えられることを意図しています。私はあなたが達成したいとは思っていませんが、あなたはそれを表現と誤解していると思います。さらに、デフォルト値の考え方は、それが置き換えられることです。システムプロパティあなたが達成したいものを見るための補足的な情報を与えることができるかもしれません。

+0

わかりません。デフォルト値はMojoのJavadocの一部です。 (MojosはJavadocベースのアノテーションを使用しています。)後でプロパティファイルに_write_したいのですが、書き込む前に置換されています。 – Puce

+0

あなたはpomと、あなたが正確に呼んだものと、上記のファイルがどこにあるのでしょうか? – khmarbaise

+0

デフォルト値はカスタムMaven Mojoプラグインの一部です。更新された質問を参照してください。 – Puce

関連する問題