我知道如何在 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 中创建它们。
有人可以给我看一个示例吗?
答案 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:
如果查看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的工作原理吗?