プロジェクトにIvyを使用していますが、jarリポジトリとしてArtifactoryを使用しています。私は実際に<ivy:makepom>
Antタスクを使用してMavenを作成しているpom.xml
ので、Mavenのdeploy:deployワークフローを介してjarとwarをMavenリポジトリにデプロイできます。
common-all.jar
私は、コンパイルに約30個のjarを必要とするという大きなjarを作成します。私は約10個のjarを指定し、Ivyは依存関係をプルダウンします。コンパイルプロセスの一部として、log4jjarといくつかのJBossjarを指定します。もちろん、これらのjarファイルは私たちの環境によって提供されます。
この瓶で、私もたくさんの戦争をしました。依存関係の一部としてを指定するcommon-all.jar
と、必要な30個のjarcommon-all.jar
もプルダウンされます。すべてが順調です。
問題は、私が戦争を構築するときです。戦争の一部としてJBossjarまたはlog4jjarを含めたくありません。これらは環境によって提供されます。それらをpom.xmlファイルで提供されているものとしてマークしました。私が構築するときcommon-all.jar
。
さて、問題は、戦争のコードをコンパイルするときにこれらが必要であることをどのように指定するかですが、戦争自体には含めたくありません。
これが私のivy.xml
ファイルのサンプルです。
common-all.jar
コンパイルに特定のjarが必要であることを指定するにはどうすればよいですか。ただし、戦争でビルドする場合、これらのjarのすべてが必要になるわけではありません。
<ivy-module version="1.0">
<info
organisation="com.travelclick"
module="TC-AppUtil"
revision="4.1"
status="release"/>
<configurations>
<conf name="default" visibility="public"
description="The single built artifact. Nothing else"/>
<conf name="compile" visibility="public"
description="The master module and transitive dependencies"/>
<conf name="provided" visibility="public"
description="Needed for compile. Will be provided outside or war"/>
<conf name="runtime" visibility="public"
description="Not required for compile, but for runtime"
extends="compile"/>
<conf name="default" visibility="public"
description="The default configuration"
extends="runtime"/>
<conf name="test" visibility="private"
description="Required for testing" extends="runtime"/>
</configurations>
<dependencies>
<!-- Normal Compile Dependencies -->
<dependency org="ximpleware" name="vtd-xml"
rev="2.5" conf="compile->default"/>
<dependency org="com.travelclick" name="common-all"
rev="4.1" conf="compile->compile,runtime"/>
<!-- Testing -->
<dependency org="junit" name="junit"
rev="4.10" conf="test->default"/>
</dependencies>
</ivy-module>