これは間違っているように聞こえるかもしれないが、私が試しているのは、Maven POM(モジュール)をインストールするとWARとしてパッケージ化されますが、さらに単一のWARを含むEARとしてパッケージ化されることです。クラシファイアを使用してそのWARを1つのモジュールとして含むWARとEARをMavenで作成しますか?
明確にする:自分のプロジェクトの既存の各WARを自身の EARにラップすることを検討しています。
私の願望の背後にあるのは、リリースされたWARをパッケージ化する方法を再構築することです。なぜなら、それぞれがEAR内に含まれるように(ただし開発の容易さのために独立したWARアーティファクトを生成するように)私は、WARに依存する新しいモジュールを作成し、それをEARにパッケージ化することに熱心ではありません。なぜなら、WARの負荷があるからです。
現在、私はクラシファイア使用して、私の既存のWARモジュールの一つのために、なしで成功を、これをしようとしています:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
...
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>se-index-webapp</artifactId>
<packaging>war</packaging>
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
...
</configuration>
</plugin>
<plugin>
<artifactId>maven-ear-plugin</artifactId>
<version>2.7</version>
<configuration>
<finalName>search-index.ear</finalName>
<classifier>ear</classifier>
<unpackTypes>war</unpackTypes>
<modules>
<webModule>
<groupId>${project.groupId}</groupId>
<artifactId>${artifactId}</artifactId>
<uri>search-index.war</uri>
<bundleFileName>search-index.war</bundleFileName>
<contextRoot>/SearchIndex</contextRoot>
</webModule>
</modules>
</configuration>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>${artifactId}</artifactId>
<version>${project.version}</version>
<type>war</type>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
<dependencies>
...
</dependencies>
</project>
を私はエラーを取得:
Artifact[war:myproject:se-index-webapp] is not a dependency of the project
は、どのようなIです可能なことをしようとしていますか?
warプロジェクトのpom.xmlには戦争のみを扱い、配備時には別の "deploy-as-ear" pom.xmlを呼び出すことを検討してください。 –
あなたが何かクリーナーを持っていることを試みているなら、これは行く方法ではありません。あなたが暗黙のうちに無限の依存サイクルを作成しているので、あなたがしようとしていることは私の知識には不可能です。 MavenユーザML –
でより良いオプションが見つかるかもしれません。仕事では、プロジェクトの依存関係と成果物を耳の中にパッケージ化し、成果物タイプに基づいて配備記述子を作成するカスタムMavenプラグインを作成しました。スキニー戦争を作成するために設定された戦争プラグインと一緒に、これは素晴らしい仕事です。これらのプロジェクトは、デフォルトで同様のpakcagingを使用するoracle jdeveloperで最初に作成されました。私は何とかこれを公表できるかどうかを確認する必要があります。 –