在 Eclipse 中使用 ANT 脚本导出为 JAR 时删除并生成 javadoc



我有一个 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 位置。您可以在构建文件中导入属性文件。

最新更新