Apache Ant と Apache Ivy を使って Maven Repository から Guava を取得すると不要な javadoc.jar
と sources.jar
も一緒に取得されてしまうときの解決策を2つメモしておく〜📝
再現確認
まず,Apache Ant の build.xml
にデフォルト設定の ivy:retrieve
タスクを書いておく.
<target name="resolve"> <ivy:retrieve/> </target>
そして,Apache Ivy の ivy.xml
には Maven Repository に載っている dependency
タグを書く.ちなみに今回は取得するファイル数を減らすために意図的に transitive="false"
を付けておく👌
<ivy-module version="2.0"> <info organisation="sandbox" module="module"/> <dependencies> <dependency org="com.google.guava" name="guava" rev="33.2.1-jre" transitive="false"/> </dependencies> </ivy-module>
ant resolve
コマンドを実行すると,以下の3ファイルが取得されてしまう😇
guava-33.2.1-jre-javadoc.jar guava-33.2.1-jre-sources.jar guava-33.2.1-jre.jar
解決策1
解決策の一つは build.xml
の ivy:retrieve
タスクに type="jar, bundle"
を設定しておくこと.そうすると guava-33.2.1-jre.jar
のみを取得できる❗️
<ivy:retrieve type="jar, bundle"/>
解決策2
もう一つの解決策は ivy.xml
の dependency
タグの中に artifact
タグを設定しておくこと.同じく guava-33.2.1-jre.jar
のみを取得できる❗️
<ivy-module version="2.0"> <info organisation="sandbox" module="module"/> <dependencies> <dependency org="com.google.guava" name="guava" rev="33.2.1-jre" transitive="false"> <artifact name="guava"/> </dependency> </dependencies> </ivy-module>