2011-11-09 16 views
0

私のプロジェクトでは、アプリケーションリソースディレクトリにプロパティプレースホルダを含むxmlファイルがあります。次に、Mavenによるビルド時に、プレースホルダがフィルタファイル(例えばapp.filters)からフィルタリングされます。 app.filtersファイルには、データベースユーザー名、パスワード、接続文字列、sftpホスト名、パスワード、ディレクトリなどのパラメータが含まれています。これらのパラメータの値は、アプリケーションがデプロイされている環境に基づいて異なります。このプロジェクトは別の環境のために別々にファイルapp.filtersを持っています。Maven:デプロイメント時のフィルタリング

mavenを使用してすべての環境に対してプロジェクトを一度構築し、環境に基づいて展開時に別のフィルタファイルを提供してxmlリソースファイルを作成する方法があるかどうかは疑問でした。

+0

この質問は何が間違っていますか?なぜ下投票? – Raihan

答えて

0

あなたが言うように、1つのポータブルビルド(良い考え、BTW)が必要な場合、それはMavenの問題ではありません。 Mavenはアプリケーションを構築するのに役立ちます。あなたがあなたのEAR/WAR/Mavenをビルドしたら、その画像から外れています。実行時(デプロイ時ではない)に、アプリケーションがクラスパス上の適切な設定ファイルを探すようにすることができます。

意味がありますか?

+0

Mavenは、jarファイルを作成するためだけではありません。 Mavenにはすでにライフサイクルの 'build'ステージに続く' deploy'、 'install'、' exec'プラグインがあります。これらの段階のいずれかでリソースフィルタリングを求めるのは非現実的ではありません。 – Raihan

+1

私はMavenがJARを構築するためだけであるとは言いませんでした。あなたが試みていることが非現実的だとは言いませんでした。元の電子メールは、「すべての環境に対してプロジェクトを構築するために、Mavenを使用する方法があるかどうか」を尋ねます。 **それは私が対処したものです。あなたが**ビルド中にリソースフィルタリング**について語っています。どちらがいいですか_?実行時にリソースファイルを処理するには、アプリケーションのロジック**が必要です。 Mavenはここには関係しません。 –

+0

私のオリジナルの投稿と同様に、私はまだmavenを使って 'deployment'時間リソースフィルタリングを実行する方法を探しています。 mavenはすでに 'build'時間フィルタリングを提供しており、ビルドを越えてプロジェクトのライフサイクルに影響を与えているので、それは問題になっています。 Mavenまたはそのプラグインで現在実行できない場合、その機能は将来のリリースで追加する必要があります。 – Raihan

関連する問題