17

複数の環境 ( prod、test、dev )にデプロイする必要があるプロジェクトがあります。主な違いは、主に構成プロパティ/ファイルにあります。

私の考えは、プロファイルとオーバーレイを使用して、特殊な出力をコピー/構成することでした。しかし、特殊な分類子 (例: "my-app-1.0-prod.zip/jar"、"my-app-1.0-dev.zip/jar") を使用して複数のアーティファクトを生成する必要がある場合、または複数のプロジェクトを作成し、環境ごとに 1 つのプロジェクトを作成します。
環境ごとに複数のアーティファクトを生成するには、maven-assembly-plugin を使用する必要がありますか? とにかく、一度にすべてを生成する必要があるので、プロファイルが適合しないように継ぎ目があります...まだ困惑しています:(

ヒント/例/リンクは大歓迎です。

副次的な問題として、CI Hudson/Bamboo でこれを達成して、すべての環境でこれらの生成されたアーティファクトを適切なサーバーに生成してデプロイする方法も知りたいです (例: SCP Hudson プラグインを使用) ?

4

6 に答える 6

10

アプリケーションとは別に構成ファイルをパッケージ化することを好みます。これにより、まったく同じアプリケーションを実行し、実行時に構成を提供できます。また、ビルド時に必要になるとは知らなかった環境のために、事後的に構成ファイルを生成することもできます。例 CERT 「アセンブリ」ツールを使用して、各ドメインの構成ファイルを名前付きファイルに圧縮します。

于 2010-03-12T04:52:03.827 に答える
2

version要素 (1.0-SNAPSHOT、1.0-UAT、1.0-PROD など) を使用し、VCS レベルのタグ/ブランチをプロファイル (マシン名、ユーザー名パスワードなどの環境固有のもの) と組み合わせて使用​​します。さまざまなアーティファクト。

于 2010-03-11T15:45:44.537 に答える
1

次のアプローチを使用して、最終的な .properties を構築するために m2 プラグインを実装しました。

  • 環境に依存しない共通の設定は、common.properties から読み取られます。
  • 特定の環境対応設定が dev.properties、test.properties、または production.properties から読み取られるため、必要に応じてデフォルト値がオーバーライドされます。
  • 最終的な .properties ファイルは、指定された順序でファイルを読み取った後、Properties インスタンスとともにディスクに書き込まれます。
  • このような .properties ファイルは、ターゲット環境に応じてバンドルされるものです。
于 2011-08-22T11:18:47.813 に答える
0

これを実現するためにプロファイルを使用しますが、デフォルトのプロファイルしかありません。これは「開発」プロファイルと呼ばれ、その上に構成ファイルがあり、構成ファイルを含めない「リリース」プロファイルがあります (そのため、アプリケーションのインストール時に適切に構成できます)。

プロファイルを使用してそれを行い、デプロイする必要がある場合はアーティファクト名にプロファイルを追加します。バージョンではなくプロファイルを使用するという点だけで、パスカルが提案したものと多少似ていると思います。

PS: 開発/リリース プロファイルのみを使用するもう 1 つの理由は、UAT または PROD 用に何かを送信するたびに、それがリリースされているためです。バグがある場合は、アプリケーションが実行されたときのコードの状態を追跡できます。リリース済み - コミット履歴から状態を見つけようとするよりも、SVN でタグ付けする方が簡単です。

于 2010-03-12T04:59:17.350 に答える
0

私は去年の夏にこの正確なシナリオを持っていました。

分類子を使用して、より高い環境ごとにプロファイルを使用することになりました。デフォルトのプロファイルは「害を及ぼさない」開発ビルドでした。私は、DEV、INT、UAT、QA、および PROD プロファイルを持っていました。

地域固有のアーティファクトを生成するために、ハドソン内で複数のジョブを定義することになりました。

私が別の方法で行っていたであろうことの 1 つは、モジュール化されたメイン プロジェクトの外部に地域固有のビルドが含まれるように、プロジェクトを少し異なる方法で設計することでした。つまり、地域ごとにプロジェクト全体を再構築するのではなく、特定のビルドごとに最新のアーティファクトを取り込むだけでした。

実際、私がジョブをセットアップしたとき、QA および PROD ジョブは常にタグから構築されるようにセットアップされていました。明らかに、これは展開に関する特定の職場のルールに合わせて調整するものです。

于 2010-03-15T15:59:53.810 に答える