Mavenを使用してビルドされたWARにシステム依存関係を含める方法 質問する

Mavenを使用してビルドされたWARにシステム依存関係を含める方法 質問する

かなり長い間インターネットで検索しましたが、システムの依存関係がビルドされたwar(WEB-INF / libフォルダー)に含まれるようにmaven-warプラグインまたは同様のものを構成する方法がわかりません。

jar ビルドの場合は、次のように Maven 依存プラグインを使用します。

<plugin>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <phase>install</phase>
            <goals>
                <goal>copy-dependencies</goal>
            </goals>
            <configuration>
                <outputDirectory>${project.build.directory}/lib</outputDirectory>
            </configuration>
        </execution>
    </executions>
</plugin>

しかし、war ビルドの場合に何をすべきか理解できません。maven-war プラグインを使用してみましたが、ビルドにシステム依存関係が含まれていません。

[アップデート]

依存関係のタイプは次のとおりです:

<dependency>
    <groupId>LoginRadius</groupId>
    <artifactId>LoginRadius</artifactId>
    <scope>system</scope>
    <version>1.0</version>
    <systemPath>${basedir}\lib\LoginRadius-1.0.jar</systemPath>
</dependency>

私の POM にはこれらの依存関係があり、war のビルド時に WEB-INF/lib に含まれません。

ベストアンサー1

私が試したオプションを要約してみます:

<packagingIncludes>${java.home}/lib/jfxrt.jar</packagingIncludes>

これは機能しません。また、jar名のみでは他のすべてが除外されるため、試してみたい場合は試してみてください。

<packagingIncludes>${java.home}/lib/jfxrt.jar,**/*</packagingIncludes>

Jatin の回答は少し複雑に思えたので、WEB-INF POM に含まれると記載されているシステム jar が正確にどこにあるかを把握するために、POM を何度も確認してみました。

とにかく、私はこの解決策を使うことになりました。最初はうまくいきませんでしたが、しばらくしていくつかの修正を加えたらうまくいきました。

以下のコマンドを使用して、jar をローカル リポジトリにインストールしました。

mvn install:install-file -Dfile="C:\Users\hp\Documents\NetBeansProjects\TwitterAndLoginRadiusMaven\lib\LoginRadius-1.0.jar" -DgroupId=LoginRadius -DartifactId=LoginRadius -Dversion=1.0 -Dpackaging=jar`

上記のコマンドを実行した後、POMの依存関係を次のように変更しました。

<dependency>
   <groupId>LoginRadius</groupId>
   <artifactId>LoginRadius</artifactId>
   <!--<scope>system</scope>-->
   <version>1.0</version>
   <!--<systemPath>${basedir}\lib\LoginRadius-1.0.jar</systemPath>-->
</dependency>

注 - システム スコープと systemPath をコメントしました。

現在、war をビルドすると、WEB-INF/lib にこの LoginRadius-1.0.jar が含まれます。

おすすめ記事