0

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

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

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

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

4

3 回答 3

4

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

于 2012-09-24T18:57:44.603 回答
2

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

于 2012-09-24T18:56:36.343 回答
0

看起来你在这里转了一圈。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 任务编写您的构建。

下载这个项目。这是一个简单的构建,包含三个类文件和一个build.xml文件。您会注意到有一个 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我将不再使用目录中的 jar,而是让 Ivy 构造类路径:

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

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

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

<ivy:cachepath>任务创建了一个类路径,我将其称为类路径java,因为它以前是这样调用的。

通过这两个 Ivy 任务,我创建了一个可以用于该<javac>任务的类路径。事实上,我什至懒得改变<javac>任务。

所以,在常春藤:

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

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

于 2012-09-27T22:05:39.997 回答