私のアプリケーションにはとgradle
が使用されています。アプリケーションは異なるversions
を持つことができ、このバージョン情報をフッターのアプリケーションに表示する必要があります。春の起動時にアプリケーションのバージョン管理を行う方法は?
1.0.0 or 1.0.0.RELEASE etc
これを行う方法は何ですか?
私のアプリケーションにはとgradle
が使用されています。アプリケーションは異なるversions
を持つことができ、このバージョン情報をフッターのアプリケーションに表示する必要があります。春の起動時にアプリケーションのバージョン管理を行う方法は?
1.0.0 or 1.0.0.RELEASE etc
これを行う方法は何ですか?
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...
私は何をお勧めしました。しかし、次に ':processResources'というタスクの実行に失敗しました。 ファイルをコピーできませんでした。logback.xml – ashishjmeshram
@ashishjmeshramプレースホルダからエスケープする必要があります。私は自分の答えを更新しました。エラーが依然として存在する場合は、さらに情報を提供してください。 – Patrick
問題はprocessResources {expand(project.properties)}行のみです。だから私はちょうどこの1行だけを追加しても。私は間違いを始める。 – ashishjmeshram