2012-01-03 7 views
1

サービス指向アーキテクチャでテストを独立して実行するためのMavenプラグインを作成しようとしています。私がしたい兄弟モジュール間で動的に生成されたプロパティを共有する

Service 
|- webapp 
|- int-test 

::のようなプロジェクトのレイアウトを考えると

  1. は設定可能「プロパティサプライヤー」に出て呼び出すことで、動的にプロパティの値を生成します。そのような不動産サプライヤは、テストデータがステージングされる未使用のアカウントIDを取得するためにWebサービスに呼び出すことができます。
  2. これらの値をwebappおよびint-testモジュールのプロパティファイルに置き換えます。
  3. webappを起動してください。
  4. テストを実行します。

これを実行する最も良い方法は、親POMにプラグインの設定を追加することです。ユーザーは単にプロジェクトをチェックアウトし、親pomのディレクトリに移動してプラグインの目標を実行しますローカルに実行されているサービスに対するテスト

私は上記の手順2をどのように行うのかよく分かりません。理想的には、プラグインがint-test/src/test/resourcesまたはwebapp/src/main/configのプロパティファイルを変更しないようにするのは、間違ってこれらの変更をチェックする可能性があるからです。私はむしろ代替えは各target/ディレクトリにのみ表示されます。

フィルタリングは同様の問題を解決するために使用できることがわかりましたが、モジュール間で動的に生成されたプロパティを共有する方法はありませんでした。

ご提案いただければ幸いです。

+0

方法についてを掲載しました。次に、mavenプロパティプラグイン[1]を使用してプロパティを読み取ります。次に、それらのプロパティに基づいてフィルタリングを実行します[2]。 (AFAIU、フィルタリング変数としてmavenプロパティを与えることができます) [1] http://haroon.sis.utoronto.ca/zarar/properties-maven-plugin/index.html [2] http:// maven。 apache.org/plugins/maven-resources-plugin/examples/filter.html –

+0

問題は、プロパティを親POMレベルで読み込み、子プロジェクトのプロパティファイルにフィルタリングする必要があることです。 –

答えて

0

カスタムmavenビルド拡張をビルドし、それらのプロパティをcetntralサービスから動的に取得し、ビルドプロセスの開始直後にメモリ内のPOMに注入することができます。確かに、私たちが会社のセットアップでこの問題をどのように解決したかです。

私は、プロパティファイルにあなたの動的に生成されたファイルを書き込み、完全なレシピto this Stackoverflow answer

関連する問題