2

JNDIを使用してさまざまな設定ファイルとログが行われる "ホーム"ディレクトリを決定するJava Webアプリケーションがあります。 Mavenビルド中、settings.xmlにあるプロパティにホームディレクトリの場所を設定します。このプロパティは、Mavenリソースフィルタリングによってビルド中にJetty/Tomcat JNDIファイルに入れられます。すべて素晴らしいです。Mavenビルド中にweb-app用の良い "home"ディレクトリが必要

しかし、このセットアップでは、一度に1台のマシン上でMavenビルドを実行する必要があります。これはすぐにHudson CIサーバで問題になります。また、ユーザーがこのディレクトリをビルドより先に作成する必要があり、ビルドの移植性を損なうのに役立ちます。理想的には私は親POMで変数を定義することによって、「ホーム」ディレクトリとして親POMプロジェクトの「ターゲット」ディレクトリを使用することができます。

<webapp-home>${project.basedir}/target<webapp-home>

しかし、各Mavenのモジュールがwebapp-homeを再定義するので、これは動作しません。違うものになる。なぜ私は考えていない。もし私がその問題を解決できるなら、私はすべて設定されるだろう。

そうでなければ、私は良い一時的な「ホーム」または「作業」ディレクトリとして何を使用することができ、それは、ビルドに固有であり、ビルドにすべてのMavenのモジュール間で一定でありますか?そしてボーナス問題は次のとおりです。Mavenが存在しない場合、私のためにディレクトリを作成できますか?

答えて

2

私たちは、すべてのプロジェクト

<properties> 
    <root.dir>${basedir}/..</root.dir> 
    <output.dir>${root.dir}/out</output.dir> 
    <output.wardir>${output.dir}/wars</output.wardir> 
</properties> 
... 
<plugin> 
    <artifactId>maven-war-plugin</artifactId> 
    <configuration> 
    <webappDirectory> 
     ${output.wardir}/exploded/${project.artifactId} 
    </webappDirectory> 
    </configuration> 
</plugin> 
+0

ためのサブフォルダで、Webアプリケーション・ホームとして「アウト」のグローバルディレクトリを使用して、あなたがすべてのモジュールPOMで 'root.dir'プロパティを定義しますしていますか?あるいは、あなたのモジュールの100%が親のpomの1つ下のレベルですか?私たちは...まだ良いアイデア... – HDave

+1

@HDaveを入れ子になったのPOMのディレクトリを持っている - これらの定義は、ルートポンポンです。次に、それを継承するサーブレットコンテナpomと、それを継承する実際のサーブレットコンテナがあります。それはすべての方法ダウン... – ripper234

+0

そして、これらの継承のMavenプロジェクトのそれぞれが同じディレクトリを指している作品?うーん、なぜ私のために働かなかったの?ええ、1つのアウトグローバルDIR - ... – HDave

関連する問題