Quantcast
Channel: kakakakakku blog
Viewing all articles
Browse latest Browse all 920

Apache Ivy の configurations でテストに必要な依存関係を取得する

$
0
0

Apache Ivy を使って Maven Repository からライブラリを取得するときに,例えば CI 環境では JUnit や Mockito などの「テストに必要な依存関係」も取得したいという場面がある.Apache Ivy では configurations(コンフィグレーション)を使って柔軟に依存関係を管理できる👌

サンプルコード

Apache Ivy の ivy.xmlを以下のように書いた.ポイントは configurationsタグで,今回は compile(コンパイルに必要な依存関係)と test(テストに必要な依存関係)という2種類のコンフィグレーションを設定した.Apache Ivy のドキュメントを見ると,アプリケーション単位の依存関係などさらに柔軟に設定している例もあった💡そして dependencyタグを書くときに conf="compile->default"conf="test->default"のようにコンフィグレーションを紐付ければ OK ✅

<ivy-module version="2.0"><info organisation="sandbox"module="module"/><configurations><conf name="compile" /><conf name="test" /></configurations><dependencies><!-- compile --><dependency org="com.google.code.gson"name="gson"rev="2.11.0"conf="compile->default"/><!-- test --><dependency org="org.junit.jupiter"name="junit-jupiter-api"rev="5.10.3"conf="test->default"/><dependency org="org.mockito"name="mockito-core"rev="5.12.0"conf="test->default"/><dependency org="org.mockito"name="mockito-junit-jupiter"rev="5.12.0"conf="test->default"/></dependencies></ivy-module>

そして Apache Ant の build.xmlには resolveターゲットと resolve-testターゲットを書いておく.

<project xmlns:ivy="antlib:org.apache.ivy.ant"><target name="resolve"><ivy:retrieve type="jar"conf="compile"/></target><target name="resolve-test"depends="resolve"><ivy:retrieve type="jar"conf="test"/></target></project>

動作確認

ant resolveコマンドを実行すると,コンパイルに必要な Gson とその依存関係を取得できる👌

error_prone_annotations-2.27.0.jar
gson-2.11.0.jar

ant resolve-testコマンドを実行すると,テストに必要な JUnit / Mockito とその依存関係を取得できる👌 そして resolve-testターゲットには resolveターゲットへの依存も設定しているため,コンパイルに必要な依存関係も取得できている \( 'ω')/

apiguardian-api-1.1.2.jar
byte-buddy-1.14.15.jar
byte-buddy-agent-1.14.15.jar
error_prone_annotations-2.27.0.jar
gson-2.11.0.jar
junit-jupiter-api-5.10.3.jar
junit-platform-commons-1.10.3.jar
mockito-core-5.12.0.jar
mockito-junit-jupiter-5.12.0.jar
objenesis-3.3.jar
opentest4j-1.3.0.jar

ドキュメント

以下に Apache Ivy の configurations に関連するドキュメントを載せておく🔗

ant.apache.org

ant.apache.org

ant.apache.org

関連記事

kakakakakku.hatenablog.com


Viewing all articles
Browse latest Browse all 920

Trending Articles