29c3795e0c
git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@352383 13f79535-47bb-0310-9956-ffa450edef68
527 lines
19 KiB
XML
527 lines
19 KiB
XML
<?xml version="1.0"?>
|
|
<?xml-stylesheet type="text/xsl" href="./tools/antipede/resources/stylesheets/layout.xsl"?>
|
|
<!DOCTYPE project [
|
|
<!-- antipede -->
|
|
<!ENTITY import-antipede SYSTEM "./tools/antipede/build.xtarget">
|
|
|
|
<!ELEMENT project ANY>
|
|
<!ATTLIST project default CDATA #REQUIRED
|
|
basedir CDATA #IMPLIED
|
|
name CDATA #IMPLIED>
|
|
|
|
]>
|
|
<project default="interactive" basedir="." name="project build file">
|
|
|
|
<description>
|
|
|
|
* ===================================== *
|
|
| Krysalis Centipede Build System |
|
|
* ===================================== *
|
|
by
|
|
|
|
Nicola Ken Barozzi (nicolaken@apache.org)
|
|
Marc Johnson (mjohnson@apache.org)
|
|
|
|
started as an extension of the
|
|
the Apache Cocoon Build System
|
|
(http://xml.apache.org/cocoon/)
|
|
by
|
|
Stefano Mazzocchi (stefano@apache.org)
|
|
Carsten Ziegeler (cziegeler@apache.org)
|
|
|
|
|
|
Installing the build tools
|
|
==========================
|
|
|
|
The Krysalis Centipede 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.
|
|
|
|
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, 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
|
|
property should be set to match the JVM you want to use.
|
|
|
|
That's all you have to do to be ready to go.
|
|
|
|
|
|
Building instructions
|
|
=====================
|
|
|
|
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 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.
|
|
|
|
Also, you'll note that reusing a single JVM instance for each task, increases
|
|
tremendously the performance of the whole build system, compared to other
|
|
tools (i.e. make or shell scripts) where a new JVM is started for each task.
|
|
|
|
Build targets
|
|
=============
|
|
|
|
The build system is not only responsible of compiling the project into a jar
|
|
file, but is also responsible for creating the HTML documentation, javadocs,
|
|
distributions and web site. In fact, the file you have here is _exactly_ what
|
|
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 run the build with "-projecthelp".
|
|
|
|
Build Dependencies
|
|
==================
|
|
Some components are optional and require special jar files to be compiled
|
|
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 can be
|
|
printed.
|
|
|
|
|
|
Happy hacking :)
|
|
|
|
============================================================================
|
|
</description>
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Basic build targets for the project -->
|
|
<!-- =================================================================== -->
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Interactive build -->
|
|
<!-- =================================================================== -->
|
|
<target name="interactive" description="Interactive Build" depends="-init">
|
|
<echo message="--------------------------------------------------------------"/>
|
|
<echo message=" "/>
|
|
<echo message=" ${xgump.module.project.name} ${xgump.module.project.version.major}.${xgump.module.project.version.minor} [${YEAR}] "/>
|
|
<echo message=" "/>
|
|
<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=" jar -------------- create the jar files "/>
|
|
<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=" scratchpad ------- build-run scratchpad code"/>
|
|
<echo message=" contrib ---------- build-run contributed code"/>
|
|
<echo message=" generate-records - generate excel records"/>
|
|
<echo message=" generate-types --- generate word types"/>
|
|
|
|
<property name="input.selection" value="compile"/>
|
|
<centipede-user-input name="input.selection">Please select a target </centipede-user-input>
|
|
|
|
<antcall target="call-cent">
|
|
<param name="cent-name" value="centipede"/>
|
|
<param name="cent-target" value="splash"/>
|
|
</antcall>
|
|
|
|
<antcall target="${input.selection}"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Interactive scratchpad builds -->
|
|
<!-- =================================================================== -->
|
|
<target name="scratchpad" depends="compile" description="Interactive Scratchpad Build">
|
|
<echo message="--------------------------------------------------------------"/>
|
|
<echo message=" "/>
|
|
<echo message=" ${xgump.module.project.name} ${xgump.module.project.version.major}.${xgump.module.project.version.minor} SCRATCHPAD "/>
|
|
<echo message=" "/>
|
|
<echo message="--------------------------------------------------------------"/>
|
|
<echo message="Building with ${ant.version}"/>
|
|
<echo message="using build file ${ant.file}"/>
|
|
<echo message="--------------------------------------------------------------"/>
|
|
<echo message=" "/>
|
|
<echo message=" These are SCRATCHPAD BUILDS. They are not guaranteed to work."/>
|
|
<echo message=" You have been warned. "/>
|
|
<echo message=" "/>
|
|
<echo message=" -"/>
|
|
<echo message=" -"/>
|
|
<echo message=" -"/>
|
|
<echo message=" -"/>
|
|
<echo message=" -"/>
|
|
<echo message=" -"/>
|
|
<echo message=" "/>
|
|
|
|
<property name="input.selection" value=""/>
|
|
<centipede-user-input name="input.selection">Please select a target </centipede-user-input>
|
|
|
|
<ant antfile="${xlayout.source.scratchpad.targets.dir}/${input.selection}/xbuild.xml"/>
|
|
|
|
</target>
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Interactive contrib builds -->
|
|
<!-- =================================================================== -->
|
|
<target name="contrib" depends="compile" description="Interactive Contributors' Build">
|
|
<echo message="--------------------------------------------------------------"/>
|
|
<echo message=" "/>
|
|
<echo message=" ${xgump.module.project.name} ${xgump.module.project.version.major}.${xgump.module.project.version.minor} CONTRIB"/>
|
|
<echo message=" "/>
|
|
<echo message="--------------------------------------------------------------"/>
|
|
<echo message="Building with ${ant.version}"/>
|
|
<echo message="using build file ${ant.file}"/>
|
|
<echo message="--------------------------------------------------------------"/>
|
|
<echo message=" "/>
|
|
<echo message=" These are CONTRIB BUILDS. They are not guaranteed to work."/>
|
|
<echo message=" You have been warned. "/>
|
|
<echo message=" "/>
|
|
<echo message=" poibrowser - POIBrowser 0.10 GUI POI Viewer"/>
|
|
<echo message=" -"/>
|
|
<echo message=" -"/>
|
|
<echo message=" -"/>
|
|
<echo message=" -"/>
|
|
<echo message=" -"/>
|
|
<echo message=" "/>
|
|
<property name="input.selection" value="poibrowser"/>
|
|
<centipede-user-input name="input.selection">Please select a target </centipede-user-input>
|
|
|
|
<ant antfile="${xlayout.source.contributions.targets.dir}/${input.selection}/xbuild.xml"/>
|
|
|
|
</target>
|
|
|
|
|
|
<!-- ================================== -->
|
|
<!-- Compile -->
|
|
<!-- ================================== -->
|
|
|
|
<target name="compile" depends="-init"
|
|
description="Compile java source code">
|
|
|
|
<antcall target="call-cent">
|
|
<param name="cent-name" value="centipede"/>
|
|
<param name="cent-target" value="compile"/>
|
|
</antcall>
|
|
|
|
</target>
|
|
|
|
<!-- ================================== -->
|
|
<!-- Run build gui -->
|
|
<!-- ================================== -->
|
|
|
|
<target name="gui" depends="-init"
|
|
description="Run build gui">
|
|
|
|
<antcall target="call-cent">
|
|
<param name="cent-name" value="antidote"/>
|
|
<param name="cent-target" value="run"/>
|
|
</antcall>
|
|
|
|
</target>
|
|
|
|
<!-- ================================== -->
|
|
<!-- Build jars -->
|
|
<!-- ================================== -->
|
|
|
|
<target name="jar" depends="-init"
|
|
description="Compile java source code">
|
|
|
|
<antcall target="call-cent">
|
|
<param name="cent-name" value="centipede"/>
|
|
<param name="cent-target" value="package"/>
|
|
</antcall>
|
|
|
|
</target>
|
|
|
|
<!-- ================================== -->
|
|
<!-- Build distributions -->
|
|
<!-- ================================== -->
|
|
|
|
<target name="dist" depends="-init"
|
|
description="Make distributions">
|
|
|
|
<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>* Since *all* main targets are tested, </echo>
|
|
<echo>* first indipendently and then together to </echo>
|
|
<echo>* check that everything is ok,</echo>
|
|
<echo>* this may take a while...</echo>
|
|
<echo>*</echo>
|
|
<echo>***********************************************</echo>
|
|
<echo/>
|
|
|
|
<antcall target="gump"/>
|
|
|
|
<antcall target="call-cent">
|
|
<param name="cent-name" value="centipede"/>
|
|
<param name="cent-target" value="dist"/>
|
|
</antcall>
|
|
|
|
</target>
|
|
|
|
<!-- ====================================== -->
|
|
<!-- dist target wo single build checks -->
|
|
<!-- ====================================== -->
|
|
|
|
<target name="quickdist" depends="testmodule"
|
|
description="Build distribution packages wo single build checks">
|
|
|
|
<antcall target="call-cent">
|
|
<param name="cent-name" value="centipede"/>
|
|
<param name="cent-target" value="dist"/>
|
|
</antcall>
|
|
|
|
</target>
|
|
|
|
<!-- ================================== -->
|
|
<!-- Clean build dir -->
|
|
<!-- ================================== -->
|
|
|
|
<target name="clean" depends="-init"
|
|
description="Compile java source code">
|
|
|
|
<antcall target="call-cent">
|
|
<param name="cent-name" value="centipede"/>
|
|
<param name="cent-target" value="clean"/>
|
|
</antcall>
|
|
|
|
</target>
|
|
|
|
<!-- ================================== -->
|
|
<!-- Run Junit tests -->
|
|
<!-- ================================== -->
|
|
|
|
<target name="test" depends="compile"
|
|
description="Compile java source code">
|
|
|
|
<antcall target="call-cent">
|
|
<param name="cent-name" value="junit"/>
|
|
<param name="cent-target" value="test"/>
|
|
</antcall>
|
|
|
|
<antcall target="call-cent">
|
|
<param name="cent-name" value="junit"/>
|
|
<param name="cent-target" value="report"/>
|
|
</antcall>
|
|
|
|
</target>
|
|
|
|
<!-- ================================== -->
|
|
<!-- Generate project metrics -->
|
|
<!-- ================================== -->
|
|
|
|
<target name="metrics" depends="compile"
|
|
description="Generate project metrics">
|
|
|
|
<antcall target="call-cent">
|
|
<param name="cent-name" value="jdepend"/>
|
|
<param name="cent-target" value="jdepend-html"/>
|
|
</antcall>
|
|
|
|
</target>
|
|
|
|
|
|
<!-- ================================== -->
|
|
<!-- Generates the documentation -->
|
|
<!-- ================================== -->
|
|
|
|
<target name="docs" depends="-init"
|
|
description="Compile java source code">
|
|
|
|
<antcall target="call-cent">
|
|
<param name="cent-name" value="forrest"/>
|
|
<param name="cent-target" value="docs"/>
|
|
</antcall>
|
|
|
|
</target>
|
|
|
|
<!-- ================================== -->
|
|
<!-- Generates the site -->
|
|
<!-- ================================== -->
|
|
|
|
<target name="site"
|
|
description="Makes all the site doco">
|
|
|
|
<antcall target="docs"/>
|
|
<antcall target="compile"/>
|
|
<antcall target="javadocs"/>
|
|
<antcall target="test"/>
|
|
<antcall target="metrics"/>
|
|
|
|
</target>
|
|
|
|
<!-- ================================== -->
|
|
<!-- Generates the javadocs -->
|
|
<!-- ================================== -->
|
|
|
|
<target name="javadocs" depends="-init"
|
|
description="Compile java source code">
|
|
|
|
<antcall target="call-cent">
|
|
<param name="cent-name" value="centipede"/>
|
|
<param name="cent-target" value="javadocs"/>
|
|
</antcall>
|
|
|
|
</target>
|
|
|
|
<!-- ================================== -->
|
|
<!-- Generates the XML javadocs -->
|
|
<!-- ================================== -->
|
|
|
|
<target name="xjavadocs" depends="-init"
|
|
description="Compile java source code">
|
|
|
|
<antcall target="call-cent">
|
|
<param name="cent-name" value="centipede"/>
|
|
<param name="cent-target" value="xjavadocs"/>
|
|
</antcall>
|
|
|
|
</target>
|
|
|
|
|
|
<!-- ================================== -->
|
|
<!-- Generate UML -WIP- -->
|
|
<!-- ================================== -->
|
|
|
|
<target name="uml" depends="-init"
|
|
description="generate-uml">
|
|
|
|
<javadoc packagenames="${xgump.module.project.package}.*"
|
|
sourcepath="${xlayout.build.java.dir}"
|
|
destdir="${xlayout.build.documentation.metrics.dir}"
|
|
failonerror="true">
|
|
|
|
<doclet name="JP.co.esm.caddies.doclets.UMLDoclet">
|
|
</doclet>
|
|
|
|
</javadoc>
|
|
|
|
</target>
|
|
|
|
<!-- ================================== -->
|
|
<!-- Generate records -->
|
|
<!-- ================================== -->
|
|
|
|
<target name="generate-records" depends="-init"
|
|
description="generate-records">
|
|
|
|
<ant antfile="${xlayout.source.targets.dir}/record-generation/xbuild.xml"
|
|
target="generate-records"/>
|
|
|
|
</target>
|
|
|
|
<!-- ================================== -->
|
|
<!-- Generate types -->
|
|
<!-- ================================== -->
|
|
|
|
<target name="generate-types" depends="-init"
|
|
description="generate-types">
|
|
|
|
<ant antfile="${xlayout.source.targets.dir}/record-generation/xbuild.xml"
|
|
target="generate-types"/>
|
|
|
|
</target>
|
|
|
|
<!-- ================================== -->
|
|
<!-- Test the main module stuff -->
|
|
<!-- ================================== -->
|
|
|
|
<target name="testmodule"
|
|
depends="clean, docs, compile, test, jar, metrics, javadocs"
|
|
description="Testing that all major targets work; useful before a commit"/>
|
|
|
|
<!-- ================================== -->
|
|
<!-- Test the main module stuff 2 -->
|
|
<!-- ================================== -->
|
|
|
|
<target name="testtargets"
|
|
description="Testing that all major targets work indipendently; useful before a commit">
|
|
|
|
<antcall target="clean"/>
|
|
<antcall target="compile"/>
|
|
<antcall target="clean"/>
|
|
<antcall target="test"/>
|
|
<antcall target="clean"/>
|
|
<antcall target="jar"/>
|
|
<antcall target="clean"/>
|
|
<antcall target="docs"/>
|
|
<antcall target="clean"/>
|
|
<antcall target="metrics"/>
|
|
<antcall target="clean"/>
|
|
<antcall target="javadocs"/>
|
|
|
|
</target>
|
|
|
|
<!-- ================================== -->
|
|
<!-- Target used by Gump -->
|
|
<!-- ================================== -->
|
|
|
|
<target name="gump"
|
|
depends="testmodule"
|
|
description="Target used by Gump">
|
|
|
|
<antcall target="clean"/>
|
|
<antcall target="testtargets"/>
|
|
<antcall target="clean"/>
|
|
<antcall target="testmodule"/>
|
|
|
|
</target>
|
|
<!-- ================================== -->
|
|
<!-- Generate all -->
|
|
<!-- ================================== -->
|
|
|
|
<target name="all"
|
|
depends="testmodule,jar"
|
|
description="Generate all"/>
|
|
|
|
<!-- ================================== -->
|
|
<!-- Create a cent.jar package -->
|
|
<!-- using an already deployed cent -->
|
|
<!-- ================================== -->
|
|
|
|
<target name="jar-cent" depends="-init"
|
|
description="Compile java source code">
|
|
|
|
<antcall target="call-cent">
|
|
<param name="cent-name" value="centipede"/>
|
|
<param name="cent-target" value="jar-cent"/>
|
|
</antcall>
|
|
|
|
</target>
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- Import Ant-Centipede -init targets - sets up basic build stuff -->
|
|
<!-- =================================================================== -->
|
|
<!--
|
|
This is the target that initializes tasks and properties used
|
|
commonly in every other target.
|
|
|
|
Remember to add depends="-init" to every target, so that this
|
|
target is called before any other.
|
|
|
|
This target is internal; to make it unusable from the commandline,
|
|
its name starts with a hyphen. To make it invisible when
|
|
using -projecthelp, it lacks a description.
|
|
-->
|
|
|
|
&import-antipede;
|
|
|
|
</project>
|