Java - 如何在Apache Ivy中创建JavaDocs

时间:2012-09-24 18:22:50

标签: java ant ivy

我知道如何在 Apache Ant Build 中为我的源文件创建javadocs

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

但我不知道如何在 Apache Ivy 中创建它们。

有人可以给我看一个示例吗?

3 个答案:

答案 0 :(得分:4)

Apache Ivy是一个依赖管理库,用于(而不是替代)Apache Ant。因此,您将一如既往地使用相同的<javadoc>任务。

答案 1 :(得分:2)

Apache Ivy是一个与Ant(构建管理器)一起使用的依赖项管理器。 Apache Ivy通常(或可能总是?)与Ant一起使用来处理构建。由于javadoc创建是构建任务而不是依赖任务,因此使用Ivy生成javadoc是没有意义的。

答案 2 :(得分: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>

当你使用Ivy时,你仍然使用Ant。而且,您仍然拥有build.xml个文件。并且,您仍然可以编写具有各种Ant任务的构建。

下载this project。这是一个包含三个类文件和一个build.xml文件的简单构建。您会注意到有一个jar目录,其中包含以下两个jar:

  • 共享记录-1.1.1.jar
  • 的spring.jar

如果查看build.xml文件的第36到40行,该项目正在创建一个这样的编译类路径:

 <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文件,其中包含我需要的罐子的描述。但是,我只需要指定我直接使用的类。在这种情况下,我只需要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目录中的jar,我会让Ivy构建类路径:

 <ivy:resolve/>
 <ivy:cachepath pathid="java"/>

 <javac destdir="bin">
     <src path="${src}"/>
     <classpath refid="java"/>
 </javac>

请注意,我使用Ivy使用的两个Ant任务而不是使用<path>任务来创建类路径。 <ivy:resolve/>查看我的ivy.xml并解析我对我请求的jar的依赖关系。这些罐子将被下载到我的$HOME/.ivy2/cache目录中。

<ivy:cachepath>任务创建了一个类路径,我正在调用类路径java,因为这是之前调用的。

通过这两个常春藤任务,我创建了一个可以与<javac>任务一起使用的类路径。事实上,我甚至都不愿意改变<javac>任务。

所以,在常春藤:

  • 我仍然需要build.xml。这就是我如何定义我需要做的各种构建任务。实际上,Ivy在我的build.xml文件中定义了我需要的更多Ant任务。
  • ivy.xml文件只是定义了我的jar依赖项。当我在这个项目中实现Ivy时,我可以删除jar目录。

这有助于您了解Ivy的工作原理吗?