2

JNDIを使用して、さまざまな構成ファイルとロギングが行われる「ホーム」ディレクトリを判別するJavaWebアプリケーションがあります。Mavenのビルド中に、settings.xmlにあるプロパティにホームディレクトリの場所を設定します。このプロパティは、Mavenリソースフィルタリングによるビルド中にJetty /TomcatJNDIファイルに入れられます。すべてがうまく機能します。

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

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

ただし、各Mavenモジュールが別のものに再定義されるため、これは機能しませんwebapp-home。理由はわかりません。その問題を解決できれば、私はすべて準備ができているでしょう。

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

4

1 に答える 1

2

グローバルな「out」ディレクトリをwebapp-homeとして使用しており、すべてのプロジェクトにサブフォルダがあります

<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>
于 2010-11-24T06:22:25.053 に答える