2017-01-31 9 views

答えて

1

documentationには良い例があります。 Gradleプロジェクトからプロパティを自動的に展開し、それらのプロパティをapplication.propertiesファイルのプレースホルダとして参照できます。

processResources { 
    expand(project.properties) 
} 

あなたはその後、例えば、 プレースホルダ経由でGradleのプロジェクトのプロパティを参照することができます

app.name=${name} 
app.description=${description} 

次に、あなたのアプリケーションでproperties値を取得するために、たとえば@Valueアノテーションを使用することができます。

@Value("${app.version}") 
public String appVersion; 

@Override 
public void run(String... arg0) throws Exception { 
    System.out.println(appVersion); 
} 

たぶん、あなたは、プレースホルダのメカニズムをエスケープする必要があります。

のGradleの拡大方法は が${..}トークンを変換GroovyのSimpleTemplateEngineを使用しています。 ${..}スタイルは、Spring独自の プロパティプレースホルダメカニズムと競合します。 Springプロパティのプレースホルダ を自動拡張と共に使用するには、 を\${..}のようにエスケープする必要があります。

P.S.:Mavenでも同じことができます。 more...

+0

私は何をお勧めしました。しかし、次に ':processResources'というタスクの実行に失敗しました。 ファイルをコピーできませんでした。logback.xml – ashishjmeshram

+0

@ashishjmeshramプレースホルダからエスケープする必要があります。私は自分の答えを更新しました。エラーが依然として存在する場合は、さらに情報を提供してください。 – Patrick

+0

問題はprocessResources {expand(project.properties)}行のみです。だから私はちょうどこの1行だけを追加しても。私は間違いを始める。 – ashishjmeshram

関連する問題