我有一个 ANT 脚本(.xml文件(,用于在 Eclipse 中将项目导出为 JAR。它只是由"导出为可运行的 JAR"生成的文件,修改为包括源代码和 javadoc(doc 和 src 文件夹(。
我想修改它,以便在我运行脚本时,它首先生成javadoc,然后创建文件,以便javadoc在JAR中始终是最新的,而无需进行大量额外的点击。此外,如果一个类或包被删除、移动或更改名称,当我在 Eclipse 中生成 javadoc 时,未被覆盖的旧文档文件将保留在 doc 文件夹中,因此为了确保 JAR 中的文档真正是最新的,我希望 ANT 脚本删除 doc 文件夹, 然后生成 javadoc,然后创建 JAR。
下面是脚本:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE xml>
<project default="create_run_jar" name="Create Runnable Jar for Project PROJECTNAME with Jar-in-Jar Loader">
<!--this file was created by Eclipse Runnable JAR file Export Wizard-->
<!--ANT 1.7 is required-->
<!--define folder properties-->
<property name="dir.buildfile" value="."/>
<property name="dir.workspace" value="${dir.buildfile}/.."/>
<property name="dir.jarfile" value="../../project_jars"/>
<target name="create_run_jar">
<jar destfile="${dir.jarfile}/JARNAME.jar">
<manifest>
<attribute name="Main-Class" value="org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader"/>
<attribute name="Rsrc-Main-Class" value="PACKAGENAME.CLASSNAME"/>
<attribute name="Class-Path" value="."/>
<attribute name="Rsrc-Class-Path" value="./ opencsv-3.9.jar"/>
</manifest>
<zipfileset src="jar-in-jar-loader.zip"/>
<fileset dir="${dir.buildfile}/bin"/>
<fileset dir="${dir.buildfile}" includes="doc/**"/>
<fileset dir="${dir.buildfile}" includes="src/**"/>
<zipfileset dir="../../libraries" includes="opencsv-3.9.jar"/>
</jar>
</target>
</project>
我把它放在<target name="create_run_jar" ...">
之前:
<target name="generate_java_docs">
<delete dir="${dir.doc}"/>
<javadoc sourcepath="${dir.src}" destdir="${dir.doc}" classpathref="build.classpath"/>
</target>
classpathref
属性用于使烦人的警告消失。上面引用的路径和属性的定义:
<property name="dir.buildfile" value="."/>
<property name="dir.workspace" value="${dir.buildfile}/.."/>
<property name="dir.eclipse" value="${dir.workspace}/.."/>
<property name="dir.libraries" value="${dir.eclipse}/libraries"/>
<property name="dir.src" value="${dir.buildfile}/src"/>
<property name="dir.doc" value="${dir.buildfile}/doc"/>
<property name="filename.libraryjar" value="opencsv-3.9.jar"/>
<path id="build.classpath">
<fileset dir="${dir.libraries}">
<include name="${filename.libraryjar}"/>
</fileset>
</path>
Ant 有一个<javadoc>
任务来生成 Javadoc 文件。
对于脚本,应将<javadoc>
放入create_run_jar
目标之前运行的<target>
中。
要确保已删除或重命名的类和包的 Javadoc 不会复制到 JAR 文件中,请在 <javadoc>
之前放置一个<delete>
:
<delete dir="${dir.buildfile}/doc" />
<javadoc ... />
我将在我的 jar 创建目标中depends
再添加两个目标,例如
<project default="create_run_jar" depends="delete_javadocs,generateJavaDocs" name="Create Runnable Jar for Project PresidentAggregateRanker with Jar-in-Jar Loader">
delete_javadocs将删除现有的文档目录。generateJavaDocs 将生成 javadocs。
您还可以使用属性文件添加 javadocs 位置。您可以在构建文件中导入属性文件。