0

問題は、warとしてパッケージ化されたプロジェクトの依存関係の1つであるWEB-INF/lib内にある*.jarファイルを使用したいということです。これらのファイルをコンパイル時に使用したいと思います。出来ますか?

本質的にそれはこのように多かれ少なかれ見えます:

MyProject pom.xml:

<dependencies>
        ................
        <dependency>
            <groupId>a.b.c</groupId>
            <artifactId>service</artifactId>
            <version>1.0.0</version>
            <type>war</type>
            <scope>provided</scope>
        </dependency>
        ...............
</dependencies>

service.war構造:

|
--WEB-INF
     |
     ---lib
         |
         ---lib1.jar   <-  I need this file on compile time for **MyProject**
4

5 に答える 5

0

maven-dependency-pluginを使用して、依存関係の war ファイルを展開オプション付きのフォルダーにコピーし、初期のライフサイクル フェーズでそこからファイルをコピーします。コンパイル時に抽出された jar を使用したい場合は、maven を介して処理できるかどうかわかりません。原因の依存関係は以前に解決されますか? 確信はないけど。ターゲット フォルダーに配置されるシステム スコープの依存関係を使用できます。

于 2012-07-13T14:14:31.087 に答える
0

Eclipse を使用している場合は、これらの jar ファイルをアプリケーションの BuildPath に追加する必要があります。プロジェクトを右クリックし、BuildPath を選択してから、"Configure Build Path" を選択します。この後、「ライブラリ」を選択し、「外部ジャーの追加」をクリックします。jar ファイルを選択するだけです。Netbeans または別の IDE を使用している場合は、同様のことを行う必要があります。

于 2012-07-13T13:42:12.843 に答える
0

<dependency/>lib1 に「提供」されたスコープでを定義できます。Mavenアーティファクトとしてlib1を利用できる場合は、実際にこれを強くお勧めします。

maven依存関係プラグインを使用して戦争をアンパックすることも可能ですが、lib1依存関係をシステムタイプとして定義する必要があり、それがうまくいくとは思わないため、状況の改善策としてこれをお勧めしません依存関係の解決は POM ファイルの補間の直後に行われるため、これは時期尚早であり、依存関係プラグインはほとんど何もしません。

于 2012-07-13T14:40:50.470 に答える
0

はい、これらの JAR ファイルは適切にエンコードされた Java JAR/ライブラリ ファイルです。これらの JAR ファイルをコピーして、他のいくつかのプロジェクトで使用できます。いくつかの抽出ツールを使用して、WAR コンテンツをローカル ディレクトリに参照または抽出できます。

于 2012-07-13T13:37:51.093 に答える
0

私が考えることができる唯一の解決策は次のとおりです。

  • WAR 依存関係を宣言して、メイン モジュールの前にビルドするモジュールを作成します。
  • 他の人が言ったように、maven-dependency-pluginunpack-dependenciesゴール)を使用してWARを一時的な場所に展開します。
  • maven-install-plugin( install-filegoal ) を使用して、JAR をローカル リポジトリにインストールします。この時点で、それらに任意groupIdartifactId値を割り当てます。

これにより、依存関係の設定が処理されます。groupIdと の値を割り当てartifactIdたので、それらを他の依存関係として使用できます。

これは機能するはずであり、あなたが説明していることを実行するために私が考えることができる唯一の方法です.

于 2013-04-10T02:50:53.120 に答える