2012-09-24 34 views
0

我知道如何在Apache Ant Build中爲我的源文件創建javadocsJava - 如何在Apache Ivy中創建JavaDocs

<target name="doc" description="generate documentation"> 
    <delete dir="${doc.dir}"/> 
    <mkdir dir="${doc.dir}"/> 
    <javadoc sourcepath="${source.dir}" destdir="${doc.dir}"/> 
</target> 

但我不知道如何在的Apache常春藤創建它們。

有人可以給我看一個示例嗎?

回答

4

Apache Ivy是一個依賴管理庫,用於Apache Ant(而不是替代品)。因此,您將一如既往地使用相同的<javadoc>任務。

+0

但是,你能告訴我一個例子常春藤文件,其中寫有該任務嗎?我是新來的常春藤 – Daemon

+2

不,你是Apache Ant的新手。常春藤只是一個外部工具/庫,可以嵌入到Apache Ant構建文件中。請參閱:http://ant.apache.org/external.html – noahlz

+1

@Daemon只需使用您在build.xml中發佈的示例。目標屬於build.xml文件。您不能將目標放入ivy.xml文件(這些僅用於依賴關係) – oers

2

Apache Ivy是一個依賴管理器,與Ant(構建管理器)一起工作。 Apache Ivy通常(或可能總是?)與Ant一起使用來處理構建。由於javadoc的創建是一個構建任務而不是依賴任務,因此使用Ivy生成javadoc並不合理。

+0

但是,你能告訴我一個例子常春藤文件,其中寫有該任務嗎?我是常春藤新手 – Daemon

0

看起來你在這裏繞着一圈。常春藤適用於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目錄。

這是否有助於您瞭解艾維的工作原理?