私はかなり新しいIvyですが、jarの依存関係を扱えるようになっています。問題はそれを設定しようとしているので、javadocとソースをJARから独立して取得できます。Ivy:Javadocsとソースの取得
私は単純なテストプロジェクトを持っていますが、私が何をしているにせよ、その中にクラスファイルを入れてjarファイルを取り出しています。
<ivy-module version="1.0">
<info
organisation="com.vegicorp"
module="test"
revision="1.0"
status="release"/>
<configurations>
<conf name="default" visibility="public" extends="runtime,master"/>
<conf name="master" visibility="public"/>
<conf name="compile" visibility="public"/>
<conf name="provided" visibility="public"/>
<conf name="runtime" visibility="public" extends="compile"/>
<conf name="test" visibility="private" extends="runtime"/>
<conf name="system" visibility="public"/>
<conf name="sources" visibility="public"/>
<conf name="javadoc" visibility="public"/>
<conf name="optional" visibility="public"/>
</configurations>
<dependencies>
<dependency org="commons-logging" name="commons-logging" rev="1.1.1"
conf="compile->default"/>
<dependency org="commons-logging" name="commons-logging" rev="1.1.1"
conf="sources->default">
<artifact name="commons-logging" type="sources" ext="jar"/>
</dependency>
<dependency org="commons-logging" name="commons-logging" rev="1.1.1"
conf="javadoc->default">
<artifact name="commons-logging" type="javadoc" ext="jar"/>
</dependency>
</dependencies>
</ivy-module>
そして次build.xml
:
私は、次のivy.xml
ファイル持って
<project name="ivy-test" default="default" basedir="."
xmlns:ivy="http://ant.apache.org/ivy">
<property name="ivy.dir" value="${basedir}/ivy.dir"/>
<import file="${ivy.dir}/ivy.tasks.xml"/>
<property name="target.dir" value="${basedir}/lib"/>
<target name="-resolve">
<ivy:resolve/>
</target>
<target name="clean">
<delete dir="${target.dir}"/>
<ivy:cleancache/>
</target>
<target name="default"
depends="-resolve">
<fail message="ivy.conf is not defined">
<condition>
<not>
<isset property="ivy.conf"/>
</not>
</condition>
</fail>
<delete dir="${target.dir}"/>
<mkdir dir="${target.dir}"/>
<ivy:retrieve conf="${ivy.conf}"
pattern="${target.dir}/[artifact]-[revision].[ext]"/>
</target>
</project>
コマンドラインでは、私が入力します:
$ ant -Divy.conf=compile
そして、それをクラスを含むjarfileをダウンロードする必要があります。
しかし、私はそれをこのタイプの場合:
$ ant -Divy.conf=sources
を私はソースではなくクラスを含むJARファイルをしたい、と私は、この入力したとき:
$ ant -Divy.conf=javadoc
を私はjarファイルをしたいですソースではなくjavadocが含まれています。
私は確かにそれが私のivy.xml
だと確信しています。私はもともとこれを試しました:
<dependencies>
<dependency org="commons-logging" name="commons-logging" rev="1.1.1">
<artifact name="commons-logging" type="jar" ext="jar" conf="compile->default"/>
<artifact name="commons-logging" type="sources" ext="jar" conf="sources->default"/>
<artifact name="commons-logging" type="javadoc" ext="jar" conf="javadoc->default"/>
</dependency>
これはjar、ソース、およびjavadocをダウンロードしましたが、どの設定を試しても問題ありません。
conf = "javadoc、sources、compile"も有効です。 – oers
私の設定をデフォルトにマップしないと、私はそれが必要かどうかをすべて知ることができます。あなたの例では、 ' 'と言ったら、jar、javadoc、およびソースを取得します。その場合、クラスjarだけが必要です。私が ' 'と言うと、私はJavadocだけが必要です。 –
ええええええええええええええええええええええええええええええええええええええ:)したがって、conf = "javadoc; sources; compile-> default"と短縮することができます。 – oers