2

そのため、WAR ファイルを出力するプロジェクトに Ivy を追加しようとしています。RESTEasy や Jackson などの一部の依存関係は、JBoss で実行時に利用できるため、それらを war/WEB-INF/lib フォルダーに入れたくありません。その他のライブラリは JBoss モジュール経由では利用できないため、プロジェクトに含めたいと考えています。

** 注: Eclipse では、Dynamic Web Module ファセットを使用しています。アイデアは、IvyDE に必要なランタイム依存関係を war/WEB-INF/lib にコピーさせることです。

最初に、2 つの ivy 構成ファイルを作成しました。

  • ivy.xml - ランタイム (WAR には含まれません)
  • ivy_web.xml - 戦争に含める

次に、GUI を使用して、Ant の取得タスクに相当する IDE を構成しました。したがって、IDE で実際には使用したくない ANT ビルド ファイルには、次のものがあります。

<ivy:retrieve pattern="war/WEB-INF/lib/[artifact]-[revision].[ext]" file="ivy-web.xml" type="jar" />
<ivy:retrieve pattern="lib/[artifact]-[revision].[ext]" file="ivy.xml" type="jar" />
  • 画像はまだ許可されていません :-(

別の投稿コメント ( Eclipse で複数の ivy ファイルをマッピングする) で、彼らは 1 つの ivy.xml のみを使用することに言及していることに気付きましたが、そこにたどり着く方法がよくわかりません。

ああ、私もこれに気付きました: IvyDE + WTP: Ivy ライブラリが WTP によって無視されることを回避するには? -しかし、私のプロジェクトは適切な種類のファセットを使用していないため、それらを追加したくありません。

したがって、この ( https://stackoverflow.com/a/16575318/880884 ) 投稿を読んだ後、プロジェクトにコンパイルとランタイム構成を追加しました。次のようになります。

<configurations>
    <conf name="compile" description="used for building"/>
    <conf name="runtime" description="used for running"/>
</configurations>

 <dependencies>
    <!-- compile -->
    <dependency org="org.codehaus.jackson" name="jackson-core-asl" rev="1.9.2" conf="compile->default"/>
    <dependency org="org.codehaus.jackson" name="jackson-xc" rev="1.9.2" conf="compile->default"/>
    <dependency org="org.codehaus.jackson" name="jackson-jaxrs" rev="1.9.2" conf="compile->default"/>


    <!-- runtime -->
    <dependency org="com.google.guava" name="guava" rev="14.0.1" conf="runtime->default"/>
    <dependency org="com.google.inject" name="guice" rev="3.0"  conf="runtime->default"/>
    <dependency org="aopalliance" name="aopalliance" rev="1.0" conf="runtime->default"/>
    <dependency org="javax.inject" name="javax.inject" rev="1" conf="runtime->default"/>
</dependencies>

ここでも、ivy.xml を 1 つだけ追加しようとしました。次に、[プロジェクト プロパティ] > [Ivy] > [リストの取得] > [追加] に移動しました。2 つの異なる構成を追加しました。1 つはコンパイル用で、/lib にマップされます。もう 1 つは「runtime」構成を使用し、取得パターンに「war/WEB-INF/lib/[artifact]-[revision].[ext]」を指定します。

ただし、最終的には war/WEB-INF/lib/ で「コンパイル」してしまいますが、これは私が望んでいたものではありません。ランタイムの依存関係だけをそこにコピーしたいだけです。

4

2 に答える 2