2

Mavenプロジェクトで必要な他のプロジェクト(.jsp、.tagファイル)からの依存関係があります。これを解決するために、これらの他のプロジェクトから「リソース」jarを作成し、それらをMavenの依存関係として指定しました。次に、jarを解凍し(antで、ソースの生成ライフサイクルフェーズ中に)、ファイルを必要な場所にコピーします。ここで問題が発生します(より良い全体的なアプローチに関する提案も歓迎します)。これらのファイルを必要なターゲットディレクトリに移動するだけで、戦争でパッケージ化できると思っていましたが、それは機能しません。一般的なアプローチは、warプラグインに追加のリソースディレクトリを追加することのようです。

ファイルを作成してMavenとの戦争に入れるにはどうすればよいですか?

WARをビルドする前に、Mavenで生成されたファイルの名前を変更します

ただし、これらのファイルは別のプロジェクトに属しているため、ソースコードにこれらのファイルを残したくありません。一時的なリソースをjarに含める方法はありますか?

4

1 に答える 1

2

これは、 MavenWarOverlayを見る必要がある典型的なケースだと思います。

オーバーレイは、複数のWebアプリケーション間で共通のリソースを共有するために使用されます。WARプロジェクト自体にオーバーレイされるWARアーティファクトを除いて、WARプロジェクトの依存関係はWEB-INF/libに収集されます。

それはあなたが別の戦争の断片を取り、あなた自身の戦争に適用できることを意味します。最良のことは、すべての共通リソースが、オーバーレイ技術を使用する他の戦争によって使用される1つの親戦争にある場合です。

オーバーレイとして使用する戦争に依存関係を追加します。

<dependency>
    <groupId>com.acne</groupId>
    <artifactId>acne-web-style</artifactId>
    <type>war</type>
    <scope>compile</scope>
</dependency>

次に、それをmaven-war-plugin:に適用します。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <overlays>
            <overlay>
                <groupId>com.acne</groupId>
                <artifactId>acne-web-style</artifactId>
                <includes>
                    <include>**/resources/*.jpg</include>
                </includes>
            </overlay>
            <overlay>
                <!-- empty groupId/artifactId represents the current build -->
            </overlay>
        </overlays>
    </configuration>
</plugin>
于 2012-11-14T17:38:20.690 に答える