2017-02-08 4 views
0

私は些細なSpring起動アプリケーションを作成し、それをJARとしてパッケージ化しました。 私はspring.profiles.includeがコマンドラインパラメータで動作しない

java -jar target/boot-active-include-0.0.1-SNAPSHOT.jar 

を呼び出すと、私はデフォルトのプロファイルにフォールバック、いかなるアクティブなプロファイルのセット

を得なかっ:デフォルト

私は

echo spring.profiles.include=B > application.properties 
java -jar target/boot-active-include-0.0.1-SNAPSHOT.jar 

を呼び出すと、私は

を得ました

次のプロファイルが有効です:私は

rm application.properties 
java -Dspring.profiles.include=B -jar target/boot-active-include-0.0.1-SNAPSHOT.jar 

を呼び出すとB

は、私は戻って、デフォルトのプロファイルに落下、いかなるアクティブなプロファイルのセット

を得なかっ:デフォルト

しかし、私はfollowiプロファイルはアクティブです:B

コマンドラインからSpringプロファイルを含めることはできますか?

バージョン:1.5.1.RELEASE

PS。 spring.profiles.activeは期待どおりに動作します。しかし、私はアクティブなプロファイルを置き換えることは望ましくありません。

+0

あなたは1.5.1を使用していますか?これはこの変更によってうまくいくはずです:https://github.com/spring-projects/spring-boot/commit/393cfe505e20496dc69b54aa94ba944dcdb75f0f。もう一度もう一度やり直すことは、メインメソッドargs配列を 'SpringApplication'に渡していることです。 –

+0

@AndyWilkinson確かです、https://github.com/michaldo/so-issue1を参照してください – michaldo

答えて

0

私は今何が起こっているのかを見て、それは間違いなく私が作ったときに逃したものだと思う。this change

変更前は、spring.profiles.includeはコンフィギュレーションファイルで使用された場合のみ考慮されました。その変更に続いて、も設定されていれば、どのソース(システムプロパティ、コマンドライン引数など)からでも考えられます。

あなたが設定され、両方の特性を使用してサンプルを実行することで、これを見ることができます:

java -Dspring.profiles.include=alpha -Dspring.profiles.active=bravo -jar target/boot-active-include-0.0.1-SNAPSHOT.jar 

alphabravoプロファイルがアクティブになっている両方:我々はまっすぐにすることができるよう

2017-02-09 11:30:49.467 INFO 40409 --- [   main] my.Example        : The following profiles are active: alpha,bravo 

私はan issueを開きましたこれはアウト。

関連する問題