diff options
author | Mark Johnson <mjohnson@apache.org> | 2002-02-15 02:11:36 +0000 |
---|---|---|
committer | Mark Johnson <mjohnson@apache.org> | 2002-02-15 02:11:36 +0000 |
commit | a836e5e135e1977dfc0574acc0e692eb77fe8220 (patch) | |
tree | aa91ac91e87203b3e5570ef9866b957ceb325bcc /build.xml | |
parent | e2841de795a7f4ac174d783de903306e3a19b805 (diff) | |
download | poi-a836e5e135e1977dfc0574acc0e692eb77fe8220.tar.gz poi-a836e5e135e1977dfc0574acc0e692eb77fe8220.zip |
update build tools per Ken Barozzi's patch
git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@352096 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'build.xml')
-rw-r--r-- | build.xml | 976 |
1 files changed, 54 insertions, 922 deletions
@@ -1,28 +1,42 @@ +<?xml version="1.0"?> +<!DOCTYPE project [ +<!ENTITY preinit-target SYSTEM "./tools/targets/preinit.xtarget"> +<!ENTITY init-target SYSTEM "./tools/targets/init.xtarget"> +<!ENTITY compile-target SYSTEM "./tools/targets/compile.xtarget"> +<!ENTITY interactive-target SYSTEM "./tools/targets/interactive.xtarget"> +<!ENTITY scratchpad-target SYSTEM "./tools/targets/scratchpad.xtarget"> +<!ENTITY contrib-target SYSTEM "./tools/targets/contrib.xtarget"> +<!ENTITY util-target SYSTEM "./tools/targets/util.xtarget"> +<!ENTITY dev-target SYSTEM "./tools/targets/dev.xtarget"> +<!ENTITY test-target SYSTEM "./tools/targets/test.xtarget"> +<!ENTITY robot-target SYSTEM "./tools/targets/robot.xtarget"> +<!ENTITY docs-target SYSTEM "./tools/targets/docs.xtarget"> +]> + +<project default="interactive" basedir="." name="krysalis"> + <!-- =========================================================================== - * =========================== * - | POI Build System | - * =========================== * + * ===================================== * + | Krysalis Centipede Build System | + * ===================================== * by - Nicola Ken Barozzi <barozzi@nicolaken.com> - Marc Johnson <mjohnson at apache dot org> + Nicola Ken Barozzi <barozzi@nicolaken.com> + Marc Johnson <mjohnson at apache dot org> - extends - * =========================== * - | Apache Cocoon Build System | - * =========================== * + extends the Apache Cocoon Build System + (http://xml.apache.org/cocoon/) by - - Stefano Mazzocchi <stefano@apache.org> - Carsten Ziegeler <cziegeler@apache.org> - + Stefano Mazzocchi <stefano@apache.org> + Carsten Ziegeler <cziegeler@apache.org> + Installing the build tools ========================== -The POI build system is based on Apache Ant, which is a Java building tool +The Krysalis build system is based on Apache Ant, which is a Java building tool originally developed for the Tomcat project but now used in many other Apache projects and extended by many developers. @@ -30,7 +44,7 @@ Ant is a little but very handy tool that uses a build file written in XML (this file) as building instructions. For more information refer to "http://jakarta.apache.org/ant/". -To make things easier for you, the POI distribution contains a precompiled +To make things easier for you, this distribution contains a precompiled version of Ant and the build scripts take care of running it. The only thing that you have to make sure, is the "JAVA_HOME" environment @@ -42,14 +56,14 @@ That's all you have to do to be ready to go. Building instructions ===================== -Ok, let's build the baby. First, make sure your current working directory is -where this very file is located. Then type +First, make sure your current working directory is where this very file +is located. Then type ./build.sh (unix) .\build.bat (win32) if everything is right and all the required packages are visible, this action -will generate a jar file in the "./build/poi" directory. +will start the build and prompt you with options. Note, that if you do further development, compilation time is reduced since Ant is able of detecting which files have changed and to recompile them at need. @@ -85,21 +99,19 @@ is used by project maintainers to take care of everything in the project, no less and no more. To know more about the available targets take a look at this file, which is -pretty self-explanatory or type +pretty self-explanatory. +To see al list of all targets, type [unix] ./build.sh -projecthelp [win32] .\build.bat -projecthelp -and concentrate on the target descriptions that start with a star '*': these -are the one you should call, the others are internal targets that are called -by the main ones. Build Dependencies ================== Some components are optional and require special jar files to be compiled -and added to the web application. Some if these jars are already included +and added to the application. Some of these jars are already included in the distribution while others not. -For each optional package which is not available, a warning is +For each optional package which is not available, a warning can be printed. If you don't like these warnings, specify the property "omit.opt.warnings" (build -Domit.opt.warnings). @@ -111,929 +123,49 @@ the command line: -Dversion="dev-1.2.1", for example. Specifying a subset of unit tests to be executed ================================================ Specify the package on the command line: --Dtest.specific="org.apache.poi.util" will select only the util +-Dtest.specific="org.krysalis.p.testme" will select only the testme tests to be run. If you've run any other unit tests in a prior session, you'll need to specify the 'clean' target to remove extraneous test classes from execution: -./build.sh clean test -Dtest.specific="org/apache/poi/util" +./build.sh clean test -Dtest.specific="org/krysalis/p/testme" or -.\build.bat clean test -Dtest.specific="org/apache/poi/util" +.\build.bat clean test -Dtest.specific="org/krysalis/p/testme" - Happy hacking from the POI Dev Team :) + Happy hacking from the Dev Team :) ============================================================================ --> -<project default="interactive" basedir="." name="POI"> - - <!-- - Give user a chance to override without editing this file - (and without typing -D each time he compiles it) - --> - <property file=".ant.properties"/> - <property file="${user.home}/.ant.properties"/> - - <!-- - these are here only for those who use jikes compiler. For other - developers this part makes no difference. - --> - <property name="build.compiler.emacs" value="on"/> - <!-- property name="build.compiler.warnings" value="true"/ --> - <property name="build.compiler.pedantic" value="false"/> - <property name="build.compiler.depend" value="true"/> - <property name="build.compiler.fulldepend" value="true"/> - + <!-- =================================================================== --> - <!-- Indentify Classpath --> - <!-- =================================================================== --> - <path id="classpath"> - <fileset dir="./lib/core"> - <include name="*.jar"/> - </fileset> - <fileset dir="./lib/optional"> - <include name="*.jar"/> - </fileset> - </path> - - <path id="scratchpad.classpath"> - <fileset dir="./lib/core"> - <include name="*.jar"/> - </fileset> - <fileset dir="./lib/optional"> - <include name="*.jar"/> - </fileset> - <fileset dir="./src/scratchpad/lib"> - <include name="*.jar"/> - </fileset> - <!-- FIXME : how to build a path that references a property set in 'init' target ? --> - <pathelement path="./build/cocoon/classes"/> - </path> - - <!-- =================================================================== --> - <!-- Initialization target --> - <!-- =================================================================== --> - <target name="init"> - <tstamp/> - - <property name="fullname" value="POI"/> - <property name="Name" value="Poi"/> - <property name="name" value="poi"/> - <property name="version" value="1.1-dev"/> - <property name="short.version" value="1.1"/> - <property name="year" value="2001-2002"/> - - <echo message="--------------------------------------------------------------"/> - <echo message=" ${fullname} [${year}] "/> - <echo message="--------------------------------------------------------------"/> - <echo message="Building with ${ant.version}"/> - <echo message="using build file ${ant.file}"/> - <echo message="--------------------------------------------------------------"/> - - <property name="debug" value="on"/> - <property name="optimize" value="off"/> - <property name="deprecation" value="off"/> - <property name="nowarn" value="on"/> - <property name="build.compiler" value="classic"/> - <property name="target.vm" value="1.2"/> - - <property name="src.dir" value="./src"/> - <property name="java.dir" value="${src.dir}/java"/> - <property name="test.dir" value="${src.dir}/testcases"/> - <property name="test.specific" value=""/> - <property name="lib.dir" value="./lib"/> - <property name="bin.dir" value="./bin"/> - <property name="tools.dir" value="./tools"/> - <property name="docs.dir" value="${src.dir}/documentation/xdocs"/> - <property name="images.dir" value="${src.dir}/documentation/images"/> - <property name="resource.dir" value="${src.dir}/resources"/> - <property name="packages" value="org.apache.poi.*"/> - <property name="context.dir" value="${src.dir}/documentation"/> - - <property name="scratchpad.dir" value="${src.dir}/scratchpad"/> - <property name="scratchpad.src" value="${scratchpad.dir}/src"/> - <property name="scratchpad.lib" value="${scratchpad.dir}/lib"/> - <property name="scratchpad.name" value="poi-scratchpad"/> - - <property name="build.root" value="./build"/> - <property name="build.dir" value="${build.root}/${name}"/> - <property name="build.src" value="${build.dir}/src"/> - <property name="build.test" value="${build.dir}/testcases"/> - <property name="build.dest" value="${build.dir}/classes"/> - <property name="build.docs" value="${build.dir}/docs"/> - <property name="build.xdocs" value="${build.dir}/xdocs"/> - <property name="build.docs.printer" value="${build.dir}/printer-docs"/> - <property name="build.javadocs" value="${build.dir}/javadocs"/> - <property name="build.context" value="${build.dir}/documentation"/> - <property name="build.scratchpad" value="${build.dir}/scratchpad"/> - <property name="build.scratchpad.src" value="${build.scratchpad}/src"/> - <property name="build.scratchpad.dest" value="${build.scratchpad}/classes"/> - <property name="build.patchqueue" value="${build.dir}/patchqueue"/> - - <property name="dist.root" value="./dist"/> - <property name="dist.name" value="${name}-${version}"/> - <property name="dist.dir" value="${dist.root}/${dist.name}"/> - <property name="dist.src.dir" value="${dist.root}/source/${dist.name}"/> - <property name="dist.bin.dir" value="${dist.root}/bin/${dist.name}"/> - <property name="dist.target" value="${dist.root}"/> - - <property name="site" value="../xml-site/targets/${name}"/> - - <property name="build.announce" value="${build.dir}/Announcement.xml"/> - <property name="announce2txt" value="./documentation/stylesheets/announcement2txt.xsl"/> - - <!-- - The location of tools.jar, relative to the JAVA_HOME home. - --> - <property name="tools.jar" value="${java.home}/../lib/tools.jar"/> - <available file="${tools.jar}" property="tools.jar.present"/> - - <filter token="Name" value="${fullname}"/> - <filter token="name" value="${fullname}"/> - <filter token="year" value="${year}"/> - <filter token="version" value="${version}"/> - <filter token="date" value="${TODAY}"/> - <filter token="log" value="true"/> - <filter token="verbose" value="true"/> - <filter token="install.war" value="${install.war}"/> - - <!-- Add filters for loading database information from database.properties file --> - <property file="database.properties"/> - <filter token="database-driver" value="${database-driver}"/> - <filter token="database-url" value="${database-url}"/> - <filter token="database-user" value="${database-user}"/> - <filter token="database-password" value="${database-password}"/> - - <!-- compile the ant tasks --> - <mkdir dir="${tools.dir}/anttasks"/> - <javac srcdir="${tools.dir}/src" destdir="${tools.dir}/anttasks"/> - - </target> - - <!-- =================================================================== --> - <!-- Interactive build --> - <!-- =================================================================== --> - <target name="interactive" description="Interactive Build" depends="init"> - <echo message="--------------------------------------------------------------"/> - <echo message="| | _ \/ _ \_ _| |"/> - <echo message="| | _/ (_) | | |"/> - <echo message="| |_| \___/___| |"/> - <echo message="--------------------------------------------------------------"/> - <echo message=" ${fullname} [${year}] "/> - <echo message="--------------------------------------------------------------"/> - <echo message="Building with ${ant.version}"/> - <echo message="using build file ${ant.file}"/> - <echo message="--------------------------------------------------------------"/> - <echo message=" These are the most common build targets."/> - <echo message=" You can also invoke them directly; see build.xml for more info. "/> - <echo message=" Builds will be in /build directory, distributions in /dist."/> - <echo message=" "/> - <echo message=" compile ------ compiles the source code "/> - <echo message=" docs --------- generates the html docs"/> - <echo message=" cleandocs ---- cleans the build docs directory"/> - <echo message=" javadocs ----- generates the API documentation"/> - <echo message=" test --------- performs the jUnit tests"/> - <echo message=" clean -------- cleans the build directory"/> - <echo message=" dist --------- creates src and bin distributions"/> - <echo message=" "/> - <taskdef name="user-input" classname="UserInput" - classpath="./tools/anttasks"/> - - <property name="input.selection" value="compile"/> - <user-input name="input.selection">Please select a target </user-input> - - <antcall target="${input.selection}"/> - - </target> - - <!-- =================================================================== --> - <!-- Print out warnings for optional components --> - <!-- =================================================================== --> - <target name="optional-warnings" - description="Outputs warnings if some optional jars are missing from the environment"> - </target> - - - <!-- =================================================================== --> - <!-- Prepares the build directory --> - <!-- =================================================================== --> - <target name="prepare" depends="init"> - <mkdir dir="${build.dir}"/> - </target> - - <!-- =================================================================== --> - <!-- Prepares the source code --> - <!-- =================================================================== --> - <target name="prepare-src" depends="prepare,generate-java-code"> - <mkdir dir="${build.src}"/> - <mkdir dir="${build.dest}"/> - <copy todir="${build.src}" filtering="on"> - <fileset dir="${java.dir}"/> - </copy> - - <mkdir dir="${build.scratchpad.src}"/> - <mkdir dir="${build.scratchpad.dest}"/> - <copy todir="${build.scratchpad.src}" filtering="on"> - <fileset dir="${scratchpad.src}"/> - </copy> - </target> - - - <!-- =================================================================== --> - <!-- Set a variable if the generated java code is already up-to-date. --> - <!-- =================================================================== --> - <target name="generate-java-code-check" depends="init"><!-- - <uptodate property="generate-java-code.notrequired" - targetfile="${build.src}/org/apache/cocoon/components/browser/BrowserImpl.java" > - <srcfiles dir="${java.dir}/org/apache/cocoon/components/browser" - includes="BrowserImpl.xml,BrowserImpl.xsl"/> - </uptodate>--> - </target> - + <!-- external reference are relative to to tools/targets/*.xtarget --> <!-- =================================================================== --> - <!-- Generate the Java code from XML using XSLT --> - <!-- =================================================================== --> - <target name="generate-java-code" depends="generate-java-code-check" - unless="generate-java-code.notrequired"><!-- - <style basedir="${java.dir}/org/apache/cocoon/components/browser" - destdir="${build.src}/org/apache/cocoon/components/browser" - includes="BrowserImpl.xml" - extension=".java" - style="${java.dir}/org/apache/cocoon/components/browser/BrowserImpl.xsl"/>--> - </target> - - - <!-- =================================================================== --> - <!-- Compiles the source directory --> - <!-- =================================================================== --> - <target name="compile" depends="prepare-src" - description="Compiles the source code"> - <copy todir="${build.dest}"> - <fileset dir="${build.src}"> - <include name="**/Manifest.mf"/> - <include name="**/*.xsl"/> - <include name="**/*.roles"/> - <include name="**/*.xconf"/> - <include name="META-INF/**"/> - </fileset> - </copy> - - <echo message="Compiling with Java ${ant.java.version}, debug ${debug}, optimize ${optimize}, deprecation ${deprecation}"/> - - <javac srcdir="${build.src}" - destdir="${build.dest}" - debug="${debug}" - optimize="${optimize}" - deprecation="${deprecation}" - target="${target.vm}" - nowarn="${nowarn}"> - <classpath refid="classpath"/> - </javac> - - <copy todir="${build.scratchpad.dest}"> - <fileset dir="${build.scratchpad.src}"> - <include name="**/Manifest.mf"/> - <include name="**/*.xsl"/> - <include name="**/*.roles"/> - <include name="**/*.xconf"/> - <include name="META-INF/**"/> - </fileset> - </copy> - - <javac srcdir="${build.scratchpad.src}" - destdir="${build.scratchpad.dest}" - debug="${debug}" - optimize="${optimize}" - deprecation="${deprecation}" - target="${target.vm}"> - <classpath refid="scratchpad.classpath"/> - </javac> - - </target> - - <target name="generate-records" depends="prepare" - description="Generates the record source code"> - - <java classname="org.apache.poi.hssf.util.RecordGenerator" fork="yes"> - <arg value="src/records/definitions"/> - <arg value="src/records/styles"/> - <arg value="src/java"/> - <arg value="src/testcases"/> - <classpath> - <path refid="classpath"/> - <pathelement location="${build.dest}"/> - </classpath> - </java> - - </target> - - <!-- =================================================================== --> - <!-- Creates the jar file --> - <!-- =================================================================== --> - <target name="all" depends="package" description="Default target"/> - - <target name="package" depends="compile" description="Generates the jar package"> - <jar jarfile="${build.dir}/${name}.jar" manifest="${build.src}/Manifest.mf"> - <fileset dir="${build.dest}"> - <include name="**"/> - <include name="META-INF/**"/> - </fileset> - </jar> - - <jar jarfile="${build.dir}/${scratchpad.name}.jar"> - <fileset dir="${build.scratchpad.dest}"> - <include name="**"/> - </fileset> - </jar> - </target> - - <!-- =================================================================== --> - <!-- Gets pending patches from bugzilla and cleans html --> - <!-- =================================================================== --> - <target name="prepare-patchqueue" depends="init" description="Patch queue 2 mail"> - <mkdir dir="${build.patchqueue}"/> - <get src="http://nagoya.apache.org/bugzilla/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&bugidtype=include&bug_id=&changedin=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&product=Cocoon+2&short_desc=%5BPATCH%5D&short_desc_type=anywordssubstr&long_desc=&long_desc_type=allwordssubstr&bug_file_loc=&bug_file_loc_type=allwordssubstr&keywords=&keywords_type=anywords&field0-0-0=noop&type0-0-0=noop&value0-0-0=&cmdtype=doit&namedcmd=cocoon+patch+queue&newqueryname=&order=Reuse+same+sort+as+last+time" - dest="${build.patchqueue}/bugzillapatchqueue.html" - verbose="true" - usetimestamp="true" - ignoreerrors="true"/> - - <taskdef name="jtidy" classname="JTidyTask" - classpath="${tools.dir}/anttasks"/> - - <jtidy src="${build.patchqueue}/bugzillapatchqueue.html" - dest="${build.patchqueue}/bugzillapatchqueue.xhtml" - log="${build.patchqueue}/bugzillapatchqueue.log" - summary="true" - warn="true"/> - - </target> - - <!-- =================================================================== --> - <!-- Transforms bugzilla patches html into xml --> + <!-- Pre Initialization --> &preinit-target; <!-- =================================================================== --> - <target name="patchqueue-xml" depends="prepare-patchqueue"> - <copy file="${tools.dir}/src/bugzilla2patchqueue.xsl" tofile="${build.patchqueue}/bugzilla2patchqueue.xsl"/> - <style basedir="${build.patchqueue}" - destdir="${build.patchqueue}" - includes="bugzillapatchqueue.xhtml" - extension=".xml" - style="bugzilla2patchqueue.xsl"/> - - </target> - + <!-- Initialization targets --> &init-target; <!-- =================================================================== --> - <!-- Makes patches.xml for xdocs using bugzilla patches xml --> - <!-- =================================================================== --> - <target name="patchqueue-xdocs" depends="patchqueue-xml"> - <copy file="${tools.dir}/src/patchqueue2xdocs.xsl" tofile="${build.patchqueue}/patchqueue2xdocs.xsl"/> - - <style basedir="${build.patchqueue}" - destdir="${build.patchqueue}" - includes="bugzillapatchqueue.xml" - extension=".xdoc" - style="patchqueue2xdocs.xsl"/> - - <copy file="${build.patchqueue}/bugzillapatchqueue.xdoc" tofile="${docs.dir}/patches.xml"/> - - </target> - - <!-- =================================================================== --> - <!-- Sends a notification of the current patch queue to the mailing list --> - <!-- =================================================================== --> - <target name="patchqueue" depends="patchqueue-xdocs"> - <copy file="${tools.dir}/src/patchqueue2text4dev.xsl" tofile="${build.patchqueue}/patchqueue2text4dev.xsl"/> - <style basedir="${build.patchqueue}" - destdir="${build.patchqueue}" - includes="bugzillapatchqueue.xml" - extension=".txt" - style="patchqueue2text4dev.xsl"/> - - </target> - - <!-- =================================================================== --> - <!-- Sends a notification of the current patch queue to the mailing list --> + <!-- Compile targets --> &compile-target; <!-- =================================================================== --> - <target name="patchqueue-notify" depends="patchqueue"> - <mail from="patch-queue@nicolaken.com" - tolist="cocoon-dev@xml.apache.org" - mailhost="192.4.0.155" - subject="DO NOT REPLY [PATCH QUEUE] Summary ${TODAY}" - files="${build.patchqueue}/bugzillapatchqueue.txt"/> - - </target> - - <!-- =================================================================== --> - <!-- Prepares the docs --> - <!-- =================================================================== --> - <target name="prepare-docs" depends="init"> - - <mkdir dir="${build.context}"/> - <mkdir dir="${build.context}/images"/> - <mkdir dir="${build.docs}"/> - <mkdir dir="${build.dir}/work"/> - - <!-- make filtered copy of XML docs --> - <copy todir="${build.context}" filtering="on"> - <fileset dir="${context.dir}"> - <exclude name="images/**"/> - </fileset> - </copy> - - <!-- Add changes and todo --> -<!-- - <copy file="changes.xml" tofile="${build.context}/xdocs/changes.xml" filtering="on"/> - <copy file="todo.xml" tofile="${build.context}/xdocs/todo.xml" filtering="on"/> - <replace file="${build.context}/xdocs/changes.xml" token="src/documentation/xdocs/dtd/" value="dtd/"/> - <replace file="${build.context}/xdocs/todo.xml" token="src/documentation/xdocs/dtd/" value="dtd/"/> ---> - <!-- Copy images --> - <copy todir="${build.context}/images" filtering="off"> - <fileset dir="${context.dir}/images"/> - </copy> - - <!-- Copy entity catalog and entities --> - <copy todir="${build.context}/resources/entities" filtering="on"> - <fileset dir="${resource.dir}/entities"/> - </copy> - <mkdir dir="${build.context}/WEB-INF/classes"/> - <move todir="${build.context}/WEB-INF/classes"> - <fileset dir="${build.context}/resources/entities"> - <include name="CatalogManager.properties"/> - </fileset> - </move> - - </target> - - + <!-- Interactive targets --> &interactive-target; <!-- =================================================================== --> - <!-- Set a variable if the generated docs are already up-to-date. --> + <!-- Scratchpad targets --> &scratchpad-target; <!-- =================================================================== --> - <target name="docs_check" depends="init"> - <uptodate property="docs.notrequired" targetfile="${build.docs}/index.html" > - <srcfiles dir="." includes="changes.xml,todo.xml"/> - <srcfiles dir="${context.dir}/xdocs" includes="**/*.xml"/> - </uptodate> - </target> - + <!-- Contrib targets --> &contrib-target; <!-- =================================================================== --> - <!-- If generated docs is already up-to-date, print a message saying so. --> + <!-- Utility targets --> &util-target; <!-- =================================================================== --> - <target name="docs_done" if="docs.notrequired"> - <echo message="-------------------------------------------------------------"/> - <echo message="Not rebuilding docs, as they are up-to-date:"/> - <echo message=" ${build.docs}/index.html is more recent than"/> - <echo message=" todo.xml, changes.xml, ${context.dir}/xdocs/*.xml"/> - <echo message="-------------------------------------------------------------"/> - </target> - + <!-- Developer targets --> &dev-target; <!-- =================================================================== --> - <!-- The documentation system (nearly beta...) --> + <!-- Testcases targets --> &test-target; <!-- =================================================================== --> - <target name="docs" - depends="package, prepare-docs, docs_check, docs_done" - unless="docs.notrequired" - description="* Generates the documentation"> - - <java classname="org.apache.cocoon.Main" fork="true" dir="${build.context}" failonerror="true"> - <arg value="-c."/> - <arg value="-d../docs"/> - <arg value="-w../work"/> - <arg value="-l../work/cocoon.log"/> - <arg value="-uINFO"/> - <arg value="index.html"/> - <classpath> - <path refid="classpath"/> - <fileset dir="${build.dir}"> - <include name="*.jar"/> - </fileset> - <pathelement location="${tools.jar}"/> - <pathelement location="${build.context}/WEB-INF/classes"/> - </classpath> - </java> - - </target> - + <!-- "Scripts" targets --> &robot-target; <!-- =================================================================== --> - <!-- Copies the tools.jar to javac.jar in web-inf/lib --> + <!-- Documentation targets --> &docs-target; <!-- =================================================================== --> - <target name="prepare-tools-lib" depends="package" if="tools.jar.present"> - <!-- NOTE: java.home is normally set by the JVM to the /jre directory --> - <copy file="${tools.jar}" tofile="${build.war}/WEB-INF/lib/javac.jar"/> - </target> - - <!-- =================================================================== --> - <!-- Set a variable if the generated printer docs are already up-to-date. --> - <!-- =================================================================== --> - <target name="printer-docs_check" depends="init"> - <uptodate property="printer-docs.notrequired" targetfile="${build.docs.printer}/index.html" > - <srcfiles dir="." includes="changes.xml,todo.xml"/> - <srcfiles dir="${docs.dir}" includes="**/*.xml"/> - </uptodate> - </target> - - <!-- =================================================================== --> - <!-- If generated printer docs is already up-to-date, print a message saying so. --> - <!-- =================================================================== --> - <target name="printer-docs_done" if="printer-docs.notrequired"> - <echo message="-------------------------------------------------------------"/> - <echo message="Not rebuilding printer docs, as they are up-to-date:"/> - <echo message=" ${build.docs.printer}/index.html is more recent than"/> - <echo message=" todo.xml, changes.xml, ${docs.dir}/*.xml"/> - <echo message="-------------------------------------------------------------"/> - </target> - - <!-- =================================================================== --> - <!-- Create the announcements --> - <!-- =================================================================== --> - <target name="announcement" depends="prepare" description="* Creates the announcement for new releases"> - - <copy file="announcement.xml" tofile="${build.announce}" filtering="on"/> - - <style basedir="${build.dir}" destdir="./" style="${announce2txt}" - includes="Announcement.xml" extension=".txt"/> - - </target> - - <!-- =================================================================== --> - <!-- Prepares the printer-docs --> - <!-- =================================================================== --> - <target name="prepare-printer-docs" depends="prepare-docs"> - - <mkdir dir="${build.dir}/printer_documentation"/> - - <!-- copy prepared docs --> - <copy todir="${build.dir}/printer_documentation" filtering="off"> - <fileset dir="${build.context}"> - </fileset> - </copy> - - <!-- copy printer skin --> - <copy todir="${build.dir}/printer_documentation/stylesheets" filtering="off" overwrite="yes"> - <fileset dir="${build.context}/stylesheets/printer_skin"> - </fileset> - </copy> - - </target> - - - <!-- =================================================================== --> - <!-- Generate printer-friendly HTML docs --> - <!-- =================================================================== --> - <target name="printer-docs" depends="package, prepare-printer-docs, printer-docs_check, printer-docs_done" - unless="printer-docs.notrequired" - description="* Generates printer-friendly documentation"> - <mkdir dir="${build.docs.printer}"/> - - <java classname="org.apache.cocoon.Main" fork="true" dir="${build.dir}/printer_documentation" failonerror="true"> - <arg value="-c."/> - <arg value="-d../printer-docs"/> - <arg value="-w../work-printer"/> - <arg value="-l../work-printer/cocoon.log"/> - <arg value="-uINFO"/> - <arg value="index.html"/> - <classpath> - <path refid="classpath"/> - <fileset dir="${build.dir}"> - <include name="*.jar"/> - </fileset> - <pathelement location="${tools.jar}"/> - <pathelement location="${build.context}/WEB-INF/classes"/> - </classpath> - </java> - </target> - - <!-- =================================================================== --> - <!-- Creates the web site --> - <!-- =================================================================== --> - <target name="site" depends="docs, javadocs" - description="Generates the web site (for site maintainers only)"> - <mkdir dir="${site}"/> - <copy todir="${site}" filtering="off"> - <fileset dir="${build.docs}"> - </fileset> - </copy> - <copy todir="${site}/apidocs" filtering="off"> - <fileset dir="${build.javadocs}"/> - </copy> - </target> - - <!-- =================================================================== --> - <!-- Set a variable if javadoc is already up-to-date. --> - <!-- =================================================================== --> - <target name="javadocs_check"> - <uptodate property="javadocs.notrequired" targetfile="${build.javadocs}/packages.html" > - <srcfiles dir= "${build.src}" includes="**/*.java"/> - </uptodate> - </target> - - <!-- =================================================================== --> - <!-- If javadoc is already up-to-date, print a message saying so. --> - <!-- =================================================================== --> - <target name="javadocs_done" if="javadocs.notrequired"> - <echo message="-------------------------------------------------------------"/> - <echo message="Not rebuilding Javadocs, as they are up-to-date:"/> - <echo message=" ${build.javadocs}/packages.html is more recent than"/> - <echo message=" ${build.src}/**/*.java"/> - <echo message="-------------------------------------------------------------"/> - </target> - - <!-- =================================================================== --> - <!-- Creates the API documentation --> - <!-- =================================================================== --> - <target name="javadocs" depends="prepare-src, javadocs_check, javadocs_done" - unless="javadocs.notrequired" - description="* Generates the API documentation"> - <mkdir dir="${build.javadocs}"/> - <javadoc packagenames="${packages}" - sourcepath="${build.src}" - destdir="${build.javadocs}" - author="true" - version="true" - use="false" - noindex="true" - windowtitle="${Name} API" - doctitle="${Name}" - bottom="Copyright © ${year} POI project. All Rights Reserved." - stylesheetfile="${resource.dir}/javadoc.css"> - <classpath refid="classpath"/> - </javadoc> - </target> - - <!-- =================================================================== --> - <!-- Creates the source distribution --> - <!-- =================================================================== --> - <target name="dist-src" depends="docs, javadocs" - description="Prepares the source distribution"> - <!-- Simply copy all and add the html docs --> - <mkdir dir="${dist.root}"/> - <mkdir dir="${dist.src.dir}"/> - <mkdir dir="${dist.src.dir}/lib"/> - <mkdir dir="${dist.src.dir}/src"/> - <mkdir dir="${dist.src.dir}/src/java"/> - <mkdir dir="${dist.src.dir}/src/documentation"/> - <mkdir dir="${dist.src.dir}/src/resources"/> - <mkdir dir="${dist.src.dir}/src/scratchpad"/> - <mkdir dir="${dist.src.dir}/src/testcases"/> - <mkdir dir="${dist.src.dir}/docs"/> - <mkdir dir="${dist.src.dir}/docs/apidocs"/> - <mkdir dir="${dist.src.dir}/tools"/> - - <!-- - <copy todir="${dist.src.dir}/bin"> - <fileset dir="${bin.dir}"/> - </copy> --> - <copy todir="${dist.src.dir}/tools"> - <fileset dir="${tools.dir}"/> - </copy> - - <copy todir="${dist.src.dir}/src/documentation"> - <fileset dir="${build.context}"/> - </copy> - - <copy todir="${dist.src.dir}/lib"> - <fileset dir="${lib.dir}"/> - </copy> - - <copy todir="${dist.src.dir}/src/resources" filtering="on"> - <fileset dir="${resource.dir}"> - <exclude name="**/*.gif"/> - <exclude name="**/*.jpg"/> - <exclude name="**/*.png"/> - </fileset> - </copy> - - <copy todir="${dist.src.dir}/src/resources" filtering="off"> - <fileset dir="${resource.dir}"> - <include name="**/*.gif"/> - <include name="**/*.jpg"/> - <include name="**/*.png"/> - </fileset> - </copy> - - <copy todir="${dist.src.dir}/src/java" filtering="on"> - <fileset dir="${java.dir}"/> - </copy> - - <copy todir="${dist.src.dir}/src/scratchpad" filtering="off"> - <fileset dir="${scratchpad.dir}"/> - </copy> - - <copy todir="${dist.src.dir}/src/testcases" filtering="off"> - <fileset dir="${test.dir}"/> - </copy> - - <copy todir="${dist.src.dir}/docs"> - <fileset dir="${build.docs}"/> - </copy> - <copy todir="${dist.src.dir}/docs/apidocs"> - <fileset dir="${build.javadocs}"/> - </copy> - - <copy todir="${dist.src.dir}"> - <fileset dir="${docs.dir}"> - <include name="changes.xml, todo.xml"/> - </fileset> - </copy> - - <copy todir="${dist.src.dir}" filtering="on"> - <fileset dir="."> - <include name="README.txt"/> - <include name="legal/*"/> - <include name="*.bat"/> - <include name="*.sh"/> - <include name="*.xml"/> - </fileset> - </copy> - - <chmod perm="+x" file="${dist.src.dir}/build.sh"/> - <chmod perm="+x" file="${dist.src.dir}/tools/bin/antRun"/> - <fixcrlf srcdir="${dist.src.dir}" includes="**.sh" eol="lf"/> - <fixcrlf srcdir="${dist.src.dir}" includes="antRun" eol="lf"/> - <fixcrlf srcdir="${dist.src.dir}" includes="**.bat" eol="crlf"/> - </target> - - <!-- =================================================================== --> - <!-- Packages the source distribution as .zip --> - <!-- =================================================================== --> - <target name="dist-src-zip" depends="dist-src" - description="Generates the source distribution as a .zip file"> - <zip zipfile="${dist.target}/${dist.name}-src.zip" - basedir="${dist.root}/source"/> - </target> - - <!-- =================================================================== --> - <!-- Packages the source distribution with .tar.gzip --> - <!-- =================================================================== --> - <target name="dist-src-tgz" depends="dist-src" - description="Generates the source distribution as a .tar.gz file"> - <tar tarfile="${dist.target}/${dist.name}-src.tar" - basedir="${dist.root}/source" - longfile="gnu"/> - <gzip zipfile="${dist.target}/${dist.name}-src.tar.gz" - src="${dist.target}/${dist.name}-src.tar"/> - </target> - - <!-- =================================================================== --> - <!-- Creates the binary distribution --> - <!-- =================================================================== --> - <target name="dist-bin" depends="package, docs, javadocs" - description="Prepares the binary distribution"> - <!-- Copy the html docs --> - <mkdir dir="${dist.root}"/> - <mkdir dir="${dist.bin.dir}"/> - <mkdir dir="${dist.bin.dir}/lib"/> - <mkdir dir="${dist.bin.dir}/docs"/> - <mkdir dir="${dist.bin.dir}/docs/apidocs"/> - - <copy file="${build.dir}/${name}.jar" tofile="${dist.bin.dir}/lib/${name}-${version}.jar"/> - - <copy todir="${dist.bin.dir}/docs"> - <fileset dir="${build.docs}"/> - </copy> - <copy todir="${dist.bin.dir}/docs/apidocs"> - <fileset dir="${build.javadocs}"/> - </copy> - - <copy todir="${dist.bin.dir}"> - <fileset dir="${docs.dir}"> - <include name="changes.xml, todo.xml"/> - </fileset> - </copy> - - <copy todir="${dist.bin.dir}" filtering="on"> - <fileset dir="."> - <include name="README.txt"/> - <include name="legal/*"/> - </fileset> - </copy> - - </target> - - <!-- =================================================================== --> - <!-- Packages the binary distribution as .zip --> - <!-- =================================================================== --> - <target name="dist-bin-zip" depends="dist-bin" - description="Generates the binary distribution as a .zip file"> - <zip zipfile="${dist.target}/${dist.name}-bin.zip" - basedir="${dist.root}/bin"/> - </target> - - <!-- =================================================================== --> - <!-- Packages the binary distribution with .tar.gzip --> - <!-- =================================================================== --> - <target name="dist-bin-tgz" depends="dist-bin" - description="Generates the binary distribution as a .tar.gz file"> - <tar tarfile="${dist.target}/${dist.name}-bin.tar" - basedir="${dist.root}/bin" - longfile="gnu"/> - <gzip zipfile="${dist.target}/${dist.name}-bin.tar.gz" - src="${dist.target}/${dist.name}-bin.tar"/> - </target> - - <!-- =================================================================== --> - <!-- Build all distributions --> - <!-- =================================================================== --> - <target name="dist-info" depends="init"> - <echo>**********************************************</echo> - <echo>*</echo> - <echo>* Build all distributions:</echo> - <echo>* - source distribution for windows/unix.</echo> - <echo>* - binary distribution for windows/unix.</echo> - <echo>*</echo> - <echo>* This may take a while...</echo> - <echo>*</echo> - <echo>***********************************************</echo> - <echo/> - </target> - - <!-- =================================================================== --> - <!-- Build all distributions --> - <!-- =================================================================== --> - <target name="dist" - depends="dist-info, dist-bin-tgz, dist-bin-zip, dist-src-tgz, dist-src-zip" - description="* Generates all distributions (source/binary)"> - </target> - - <!-- =================================================================== --> - <!-- Clean targets --> - <!-- =================================================================== --> - <target name="clean" depends="init" description="* Cleans the build directories"> - <delete dir="${build.dir}"/> - </target> - - <target name="cleandocs" depends="init" description="* Cleans the build docs directories"> - <delete dir="${build.docs}"/> - </target> - - <target name="distclean" depends="clean" description="* Cleans everything to the original state"> - <delete dir="${build.root}"/> - <delete file="${dist.target}/${Name}-${version}.tar.gz"/> - <delete file="${dist.target}/${Name}-${version}.tar"/> - <delete file="${dist.target}/${Name}-${version}.zip"/> - <delete file="${dist.target}/${Name}-${version}-src.tar.gz"/> - <delete file="${dist.target}/${Name}-${version}-src.tar"/> - <delete file="${dist.target}/${Name}-${version}-src.zip"/> - <delete file="${dist.target}/${Name}-${version}-bin.tar.gz"/> - <delete file="${dist.target}/${Name}-${version}-bin.tar"/> - <delete file="${dist.target}/${Name}-${version}-bin.zip"/> - <delete dir="${dist.root}"/> - </target> - - <!-- =================================================================== --> - <!-- Test targets --> - <!-- =================================================================== --> - <target name="test" depends="compile" description="Perform jUnit tests"> - <mkdir dir="${build.test}"/> - <!-- Copy test files to build test dir --> - <copy todir="${build.test}" filtering="on"> - <fileset dir="${test.dir}/${test.specific}"/> - </copy> - <!-- Compile tests --> - <javac srcdir="${build.test}" - destdir="${build.test}" - debug="${debug}" - optimize="${optimize}" - deprecation="${deprecation}" - target="${target.vm}"> - <classpath refid="classpath"/> - <classpath> - <pathelement path="${build.dest}" /> - </classpath> - </javac> - <junit printsummary="yes" haltonfailure="yes" fork="yes"> - <sysproperty key="UTIL.testdata.path" - value="${test.dir}/org/apache/poi/util/data"/> - <sysproperty key="HSSF.testdata.path" - value="${test.dir}/org/apache/poi/hssf/data"/> - <classpath> - <pathelement location="${build.test}" /> - <pathelement location="${build.dest}" /> - <pathelement path="${java.class.path}" /> - </classpath> - <classpath refid="classpath"/> - <formatter type="plain" usefile="no" /> - <batchtest> - <fileset dir="${build.test}"> - <include name="**/test/*TestCase.class"/> - <include name="**/*Test.class" /> - <include name="**/Test*.class" /> - <exclude name="**/AllTest.class" /> - <exclude name="**/*$$*Test.class" /> - </fileset> - </batchtest> - </junit> - </target> - - <!-- =================================================================== --> - <!-- Fix line endings in src --> - <!-- =================================================================== --> - <target name="fixsrclf" depends="init" description="Fix lf in src directory (internal use only!)"> - <fixcrlf srcdir="${java.dir}" includes="**/*.java" eol="lf"/> - </target> - + </project> <!-- End of file --> |