3

新しいプロジェクトの ear ファイルを作成するために、Maven EAR プラグインを使用しています。プラグインのドキュメントで、モジュールの除外ステートメントを指定できることに気付きました。たとえば、私のプラグインの構成は次のとおりです...

  <plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-ear-plugin</artifactId>
        <version>2.4.1</version>
        <configuration>
            <jboss>
                <version>5</version>
            </jboss>
            <modules>
                <!-- Include the templatecontroller.jar inside the ear -->
                    <jarModule>
                        <groupId>com.kewill.kdm</groupId>
                        <artifactId>templatecontroller</artifactId>
                        <bundleFileName>templatecontroller.jar</bundleFileName>
                        <includeInApplicationXml>true</includeInApplicationXml>
                    </jarModule>
                    <!-- Exclude the following classes from the ear -->
                    <jarModule>
                       <groupId>javax.activation</groupId>
                       <artifactId>activation</artifactId>
                       <excluded>true</excluded>
                    </jarModule>
                    <jarModule>
                   <groupId>antlr</groupId>
                   <artifactId>antlr</artifactId>
                   <excluded>true</excluded>
                </jarModule>
                ... declare multiple excludes
                <security>
                    <security-role id="SecurityRole_1234">
                        <role-name>admin</role-name>
                    </security-role>
                </security>
            </configuration>
        </plugin>
    </plugins>

このアプローチは、除外するモジュールが 4 ~ 5 個ある小規模なプロジェクトではまったく問題ありません。ただし、私のプロジェクトには 30 以上ありますが、プロジェクトを開始したばかりなので、プロジェクトが拡大するにつれて、これは成長する可能性があります。

モジュールごとに明示的に除外ステートメントを宣言する以外に、ワイルドカードを使用するか、すべての Maven 依存関係フラグを除外して、宣言したモジュールのみを含め、他のすべてを除外することは可能ですか? よりエレガントなソリューションを知っている人はいますか?

4

3 に答える 3

1

ワイルドカードがサポートされているかどうかはわかりませんが、独自のモジョを作成するのは非常に簡単です。既存のモジョをラップして、ワイルドカード構文など、独自のデザインの任意の構成を使用できます。

さらに良いことに、あなたのモジョを Maven チームに提出することもできます (!)

于 2010-03-16T09:33:49.587 に答える
1

モジュールごとに明示的に除外ステートメントを宣言する以外に、ワイルドカードを使用するか、すべての Maven 依存関係フラグを除外して、宣言したモジュールのみを含め、他のすべてを除外することは可能ですか?

maven-ear-pluginは、すぐに使用できるこの機能を提供しません (とにかく設定が簡単だとは思いません。耳は非常に正確にパッケージ化する必要があります)。ただし、ここで明確でないのは、除外する必要がある依存関係を取得する方法です。あなたの答えに応じて、それらを処理する方法がいくつかあります。

  • それらがアーティファクトの依存関係である場合は、それらの一部をオプションとして宣言して、それらを推移的に取得することを避けることができます
  • いくつかの依存関係を「提供済み」としてマークすることができます (そして、それらを親 pom に入れ、EAR の POM で必要なものだけを再宣言します)。

全体像を見ないと答えにくいですが。

于 2010-03-16T22:16:47.697 に答える
0

私は同様の問題に直面していました。しかし、それは、提供されたスコープを持つ複数のjarを含むマルチモジュールプロジェクトがあったため、子の耳のpomから親タグを削除して、独立させました。次に、include を使用して、必要な数の jar を含めます。

お役に立てれば!!!

于 2013-09-19T08:37:14.860 に答える