2015-12-29 12 views
8

アプリケーションを実行しているときに、banner.txtで定義されたアプリケーションのバージョンがコンソールに表示されません。それはdocs of Spring BootアプリケーションのバージョンがSpringブートのbanner.txtに表示されない

${application.version} 

プロジェクトに応じて定義されているが、私が構築した場合に[OK]を

+0

とこれは私のためにうまく働いていない唯一のアプリケーションのバージョンでバナーを見ることができる前に、すでに言及。私はstart.spring.ioからプロジェクトを生成しました。次に、src/main/resources/banner.txtというファイルを追加し、内容は '$ {application.version}'を参照していました。それから、私は './mvnw clean package'と言います。次に、 'java -jar target/demo-0.0.1-SNAPSHOT.jar'を実行しました。 '0.0.1-SNAPSHOT'を期待どおりに印刷しました。これがうまくいかない場合、おそらくbanner.txtファイルのような詳細を提供しますか? –

+0

私はプロジェクトをビルドし、java -jarで実行するとバージョンが表示されます。しかし、IDE(IntelliJ IDEA)内でアプリケーションを起動すると、バージョンは印刷されません。何が問題なの? – pas2al

答えて

13

、バージョンが印刷されます(start.spring.ioからBasicプロジェクトのセットアップ)親ポンポンなど春ブート・スターター・親を使用していますそのプロジェクトをjava -jarで実行します。しかし、IDE(IntelliJ IDEA)内でアプリケーションを起動すると、バージョンは印刷されません。

Customizing the BannerのSpringブートのドキュメントによると、${application.version}の値はjarマニフェストから取得されます。

MANIFEST.MFで宣言されているアプリケーションのバージョン番号。たとえば、Implementation-Version:1.0は1.0として出力されます。

IDEから実行する場合、IDEでコンパイルされたクラスファイルに対して実行するのが一般的です。 IDEは通常、マニフェスト付きのjarファイル全体を構築するという完全なサイクルを経ることはありません。したがって、実行時に${application.version}の値を代入するためのMANIFEST.MFは使用できず、裸のトークンが残っています。

これはコードのバグではなく、完全なjarビルドを実行するときに正しく動作することがわかりました。 IDEを実行している間にこれを修正することが本当に重要な場合は、完全なjarビルドとマニフェスト生成を最初に実行するカスタムビルドステップを設定することを検討できます。それはおそらく残念です。バナーは、JARの実際のリリースビルドに対してテストすることによって、IDEの後で検証することができます。

+1

javaを使ってjarファイルを実行していても、私にとってはうまくいきません。どんな考え?私はbanner.txtファイルの中にこの行を持っています:コンソール内に全く同じバージョンの 'Version $ {application.version}'が表示されています –

+0

@AlirezaMirian、私のコメントに記述したのと全く同じ手順でビルドして実行しましたか?質問には?それは私のためにうまくいきます。まだそれがあなたのために働かないなら、私はアイデアから外れているのではないかと心配しています。あなたの環境には何か異なるものがなければなりませんが、私は何がわかりません。 –

3

私の場合は、spring-boot-maven-plugin で作成されたマニフェストを見ていますが、実装バージョンはありませんでした。

これを追加するには、paven.xmlのbuild.pluginsセクションにプラグインmaven-jar-pluginを追加します。その後

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-jar-plugin</artifactId> 
    <version>3.0.2</version> 
    <configuration> 
     <archive> 
       <manifestEntries> 
        <Implementation-Version>${project.version}</Implementation-Version> 
       </manifestEntries> 
     </archive> 
    </configuration> 
</plugin> 

私はjavaの-jarらが私のIDE

関連する問題