ここでぐるぐる回っているように見えます。Ivy は Ant で動作します。build.xmlビルドに使用するファイルがまだあります。このivy.xmlファイルには、プロジェクトをビルドするために必要なサードパーティの jar のリストが含まれているだけです。したがって、あなたの質問に対する直接的な答えは次のようになります。
あなたのに次を入れてくださいbuild.xml:
<target name="doc" description="generate documentation">
<delete dir="${doc.dir}"/>
<mkdir dir="${doc.dir}"/>
<javadoc sourcepath="${source.dir}" destdir="${doc.dir}"/>
</target>
Ivy を使用するときは、引き続き Ant を使用します。そして、まだbuild.xmlファイルがあります。そして、さまざまな Ant タスクを使用してビルドを作成します。
このプロジェクトをダウンロードしてください。これは、3 つのクラス ファイルと 1 つのファイルを含む単純なビルドbuild.xmlです。次の 2 つの jar を含む jar ディレクトリがあることに気付くでしょう。
- commons-logging-1.1.1.jar
- spring.jar
ファイルの 36 行目から 40 行目を見るとbuild.xml、プロジェクトは次のようなコンパイル クラスパスを作成しています。
<path id="java">
<fileset file="jar/spring.jar"/>
<fileset file="jar/commons-logging-1.1.1.jar"/>
</path>
したがって、コンパイルするときは次のようにします。
<javac destdir="bin">
<src path="${src}"/>
<classpath refid="java"/>
</javac>
では、これが Ivy でどのように変化するかを見てみましょう。Ivy で、ivy.xml必要な jar の説明を含むファイルを作成します。ただし、直接使用するクラスを指定するだけで済みます。この場合、必要なのはspring.jar. これが私のものivy.xmlです:
<ivy-module version="1.0>
<info organisation="com.seantheflexguy"
name="ContextExample"
revision="1.0"/>
<configurations>
<conf="default" visibility="public"/>
<conf="compile" visibility="public"/>
</configurations>
<dependencies>
<dependency org="org.springframework" name="spring"
rev="2.0.4" conf="compile->default"/>
</dependencies>
</ivy-module>
代わりに、ディレクトリ内の jar を使用する代わりに、jarIvy にクラスパスを作成させます。
<ivy:resolve/>
<ivy:cachepath pathid="java"/>
<javac destdir="bin">
<src path="${src}"/>
<classpath refid="java"/>
</javac>
タスクを使用してクラスパスを作成する代わりに、<path>Ivy が使用する 2 つの Ant タスクを使用していることに注意してください。は私を<ivy:resolve/>見て、ivy.xml私が要求した jar への依存関係を解決します。これらの jar は、私の$HOME/.ivy2/cacheディレクトリにダウンロードされます。
タスクはクラスパスを作成します。<ivy:cachepath>クラスパスと呼んでいるjavaのは、それが以前に呼び出されたものだからです。
これら 2 つの Ivy タスクで、<javac>タスクで使用できるクラスパスを作成しました。実際、私は<javac>タスクを変更することさえ気にしていません。
したがって、アイビーでは次のようになります。
- 私はまだ私の
build.xml. これは、実行する必要があるさまざまなビルド タスクを定義する方法です。実際、Ivy はbuild.xmlファイルに必要なさらに多くの Ant タスクを定義しています。
- この
ivy.xmlファイルは、jar の依存関係を定義するだけです。このプロジェクトに Ivy を実装すると、jarディレクトリを削除できます。
これは、Ivy がどのように機能するかを理解するのに役立ちますか?