我有一个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>
答案 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>