3

起動時にシステム プロパティを設定する必要があるアプリケーションがあり、プロパティは環境ごとに異なる必要があります (つまり、Dev では 1 つの値、Prod では異なる値)。

これは別の未回答の質問に似ていますが、その質問はデーモンについて具体的に尋ねており、プログラムスクリプトを使用しています。解決策は同じかもしれませんが、JSW デーモンには特別な扱いがあるかもしれないというヒントを見つけました。UNIX テンプレートには のプレースホルダーが@ENV_SETUP@あり、ドキュメントには environmentSetupFileName は JSW 専用であると記載されています。environmentSetupFileName の使用を検討しますが、それを使用する方法や、environmentSetupFileName が期待する bin ディレクトリにある他のスクリプトを取得する方法について、これ以上の情報を見つけることができません。

これはよくある問題のように思えますが、答えが簡単に見つからないことに驚いています。AppAssembler で環境固有のシステム プロパティを設定するにはどうすればよいですか?

4

2 に答える 2

1

次のような環境変数をextraJvmArguments内に配置できます

<extraJvmArguments>-Dapp.contextPath=${APP_CONTEXT_PATH}</extraJvmArguments>

APP_CONTEXT_PATH はパッケージング時に解決できないため、appassemblyr によって生成されたスクリプトではこの形式のままになります。

次に、デプロイ中にこの環境変数を設定するだけです。これは、docker を使用する場合に非常に便利です。

于 2017-04-19T08:53:25.230 に答える
0

まず、環境設定ファイルがJSW専用であるというあなたの仮定は正しくありません。ドキュメントは次のように述べています。

実行前に呼び出される $BASEDIR/bin 内のセットアップ ファイル。

: jsw プラットフォームのみ。このオプションの環境ファイルが WRAPPER_CONF_OVERRIDES 変数も設定する場合、それは JSW ネイティブ ランチャーのコマンド ライン引数に渡され、wrapper.conf のプロパティをオーバーライドします。詳細について は、 http://wrapper.tanukisoftware.com/doc/english/props-command-line.html を参照してください。

JSW の概念は Note にのみ関連しています。これは、特別な変数を定義してラッパー構成ファイルをオーバーライドできることを意味します。これは改善する必要があると思います(そのためのチケットを作成しました)。

環境設定ファイルの定義は、生成されたスクリプトがその特定の設定ファイルを呼び出すということだけです。他のファイルを bin ファイルに追加したい場合は、あなたの番です。

さらに、要件が正しいことを理解している場合は、値が異なるさまざまなパッケージ Dev、Prod などを作成する必要があります。つまり、Dev 用のパッケージと Prod 用のパッケージを作成する必要があります。これは appassemblyr-maven-plugin などの複数の実行を意味し、結果の適切なアーカイブを作成するために maven-assembly-plugin である場合があります。

于 2014-02-11T17:39:12.820 に答える