Buildr を使用して、アプリケーションを.warファイルとしてパッケージ化しています。自動展開プロセスをさらに合理化するために、これら 2 つのファイルのいずれかを (ディレクトリから) 条件付きで選択したいと思いますsrc/main/resources
...
database-hsql.properties
database-postgres.properties
...そして、結果の .war に .war という名前で含めdatabase.properties
ます。(WAR 内の同じ場所、つまりWEB-INF/classes/
、今からのファイルがsrc/main/resources
終了する場所)。
これを行う簡単な方法はありますか?どのようなアプローチでも問題ありません。たとえば、「パッケージ」をパラメーター化する (何らかの方法で) か、「package-hsql」と「package-pgsql」などの 2 つの異なるタスク/ターゲットを定義する (用語がわかりません)。そして十分に簡単です。
の関連ビットbuildfile
:
load 'dependencies'
require 'buildr/hibernate'
desc "..."
define "foo" do
project.version = VERSION_NUMBER
project.group = GROUP
manifest["Implementation-Vendor"] = COPYRIGHT
compile.with WICKET,GUAVA,GSON, ... [many more libs]
test.with MOCKITO
resources
test.compile.with SERVLET,_('src/main/webapp'),_('src/main/resources')
package(:war).with(:libs=> [WICKET,GUAVA,GSON, ... ])
end
おまけの質問:別の構成ファイルを変更するために、2 つのケースのそれぞれで任意のシェル コマンドを実行する方法 (たとえば>>
、 またはを含むものを使用します)。sed
(また、別のファイルからいくつかのデータベース設定を「注入」したいと思いapplicationContext.xml
ます。これは、VCS にそのファイルの 2 つのコピーをほぼ同一の内容で保持するよりも望ましい方法です。)
これが基本的すぎる場合は申し訳ありません。私は Buildr の初心者で、Ruby についてよく知りません。(そして、はい、現在のチームメンバーが熟練していないツールを使用するのは最適な状況ではありません...) 何か明確にする必要がある場合は、指摘してください!