看起來你在這裏繞着一圈。常春藤適用於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>
當您使用常春藤,你還是使用Ant。而且,您還有一個build.xml
文件。而且,您仍然使用各種Ant任務撰寫構建。
下載this project。這是一個簡單的版本,其中包含三個類文件和一個build.xml
文件。你會發現有一個罐子目錄以下兩個罐子:
- 共享記錄-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.xml
文件,其中包含我需要什麼罐子的描述。但是,我只需要指定我直接使用的類。在這種情況下,我只需要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
目錄罐子的,我會常青藤構建類路徑:
<ivy:resolve/>
<ivy:cachepath pathid="java"/>
<javac destdir="bin">
<src path="${src}"/>
<classpath refid="java"/>
</javac>
公告,而不是使用<path>
任務創建的類路徑,我使用了兩個常春藤使用的Ant任務。 <ivy:resolve/>
查看我的ivy.xml
並解決了我對我請求的罐子的依賴關係。這些罐子將被下載到我的$HOME/.ivy2/cache
目錄中。
<ivy:cachepath>
任務創建一個類路徑我打電話給類路徑java
,因爲這是以前調用的。
有了這兩個常春藤任務,我創建了一個類路徑,我可以使用<javac>
任務。事實上,我甚至不打算修改<javac>
任務。
所以,在常春藤:
- 我仍然需要我
build.xml
。這是我如何定義我需要做的各種構建任務。事實上,Ivy在我的build.xml
文件中定義了更多需要的Ant任務。
ivy.xml
文件只是定義了我的jar依賴關係。當我在這個項目中實現Ivy時,我可以刪除jar
目錄。
這是否有助於您瞭解艾維的工作原理?
但是,你能告訴我一個例子常春藤文件,其中寫有該任務嗎?我是新來的常春藤 – Daemon
不,你是Apache Ant的新手。常春藤只是一個外部工具/庫,可以嵌入到Apache Ant構建文件中。請參閱:http://ant.apache.org/external.html – noahlz
@Daemon只需使用您在build.xml中發佈的示例。目標屬於build.xml文件。您不能將目標放入ivy.xml文件(這些僅用於依賴關係) – oers