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

时间:2017-05-09 13:41:14

标签: java eclipse jar ant javadoc

我有一个ANT脚本(.xml文件),用于在Eclipse中将项目导出为JAR。它只是由“export as runnable JAR”生成的文件,修改包括源代码和javadoc(doc和src文件夹)。

我想修改它,以便在运行脚本时,它首先生成javadoc然后创建文件,这样javadoc在JAR中始终是最新的,而不需要额外的大量点击。此外,如果删除或移动类或包或更改名称,当我在Eclipse中生成javadoc时,未覆盖的旧doc文件保留在doc文件夹中,因此要确保JAR中的文档真正是最新的I希望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>

3 个答案:

答案 0 :(得分:0)

Ant有一个<javadoc> task用于生成Javadoc文件。

对于您的脚本,string_list_B = target_string.split(" ") commonalities = set(string_list) - (set(string_list) - set(string_list_B)) 应放入在<javadoc>目标之前运行的<target>

为了确保已删除或重命名的类和包的Javadoc没有被复制到JAR文件中,请在create_run_jar之前放置<delete>

<javadoc>

答案 1 :(得分:0)

我将在depends中再添加两个目标到我的jar创建目标,如

<project default="create_run_jar" depends="delete_javadocs,generateJavaDocs" name="Create Runnable Jar for Project PresidentAggregateRanker with Jar-in-Jar Loader">

delete_javadocs 将删除现有的doc目录。 generateJavaDocs 将生成javadoc。

您还可以使用属性文件添加javadocs位置。您可以在构建文件中导入属性文件。

答案 2 :(得分:0)

我把它放在<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>