0

次のセットアップ: Web プロジェクトとその 2 つのオーバーレイを取得しました。したがって、3 つの異なる war ファイルを取得しました。現在、本番環境で使用されているが、テスト目的でも使用されるデフォルトの構成 (Bean、オーバーライド プロパティ ファイル、web.xml) があります。新しい機能をプログラミングし、構成値がテスト目的で設定されている場合、値を忘れて、本番環境に到達することがありますが、これは悪いことです。

ここで、1 つまたはそれ以上の 2 つの構成プロジェクトを取得しようとします。1 つはすべてのデフォルト値を保持するため、もう 1 つはテスト用です。アイデアは、分類子を使用する 3 つの Web プロジェクトごとに追加の war ファイルを作成することでした。

したがって、たとえば、すべてのデフォルト値と myapp.war ファイルを保持する myapp.config アーティファクトと、myapp-dev.war ファイルにある myapp.config.dev アーティファクトが必要です。

私はまだmavenに慣れていないので、maven warプラグインまたはmaven warpathプラグインでこれを達成する方法をインターネットでよく調べましたが、解決策が見つかりませんでした。さらに、これがこの「機能」を実装する正しい方法であるかどうかはわかりません。

よろしくお願いします!

4

1 に答える 1

1

環境ごとに異なるアーティファクトを構築しないでください。理想的には、テスト環境でテストされたのと同じ war を prod にデプロイする必要があります。そうしないと、テスターが見つけられなかったバグが発生します-なぜなら、ビルドのバグにより、製品戦争がテスト戦争とわずかに異なるためです.

人々は通常、環境固有の構成をできるだけ少ないファイルに配置します。理想的には、ファイルを 1 つだけにして、そのコピーをいくつか用意します。

db-config-dev.properties
db-config-test.properties

次に、すべての環境でアプリ サーバーのスタートアップにシステム プロパティを追加するなどの操作を行います。

-Dcom.company.environment=test

最後に、単一のwar はすべての環境で同じように動作します。db-config-${com.company.environment}.properties をロードして使用します。

于 2013-06-27T03:45:02.507 に答える