mirror of https://github.com/apache/poi.git
172 lines
7.2 KiB
XML
172 lines
7.2 KiB
XML
<?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">
|
|
|
|
<!-- ===========================================================================
|
|
|
|
|
|
* ===================================== *
|
|
| Krysalis Centipede Build System |
|
|
* ===================================== *
|
|
by
|
|
|
|
Nicola Ken Barozzi <barozzi@nicolaken.com>
|
|
Marc Johnson <mjohnson at apache dot org>
|
|
|
|
extends 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 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.
|
|
|
|
|
|
Building on another directory
|
|
=============================
|
|
|
|
Sometimes you might want to build on an external directory to keep the
|
|
distribution clean: no worries, this is just an environment property away.
|
|
Suppose you want to use the "../build" directory instead, you simply tipe
|
|
|
|
[unix] ./build.sh -Dbuild.root=../build
|
|
[win32] .\build.bat -Dbuild.root=..\build
|
|
|
|
By using the -Dxxx=yyy argument, you are setting environments in the JVM: Ant
|
|
is designed to give higher priority to system environments to allow you to
|
|
modify _any_ <property> that you can find in the building instructions below,
|
|
so it's just a matter of understanding what property you want to change
|
|
and you don't have to touch this file (which you shouldn't need to do).
|
|
|
|
|
|
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.
|
|
To see al list of all targets, type
|
|
|
|
[unix] ./build.sh -projecthelp
|
|
[win32] .\build.bat -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. If you don't like these warnings, specify the property "omit.opt.warnings"
|
|
(build -Domit.opt.warnings).
|
|
|
|
Distribution Version
|
|
====================
|
|
When preparing a distribution for release, specify the version ID on
|
|
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.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/krysalis/p/testme"
|
|
|
|
or
|
|
|
|
.\build.bat clean test -Dtest.specific="org/krysalis/p/testme"
|
|
|
|
|
|
Happy hacking from the Dev Team :)
|
|
|
|
============================================================================ -->
|
|
|
|
|
|
<!-- =================================================================== -->
|
|
<!-- external reference are relative to to tools/targets/*.xtarget -->
|
|
<!-- =================================================================== -->
|
|
<!-- Pre Initialization --> &preinit-target;
|
|
<!-- =================================================================== -->
|
|
<!-- Initialization targets --> &init-target;
|
|
<!-- =================================================================== -->
|
|
<!-- Compile targets --> &compile-target;
|
|
<!-- =================================================================== -->
|
|
<!-- Interactive targets --> &interactive-target;
|
|
<!-- =================================================================== -->
|
|
<!-- Scratchpad targets --> &scratchpad-target;
|
|
<!-- =================================================================== -->
|
|
<!-- Contrib targets --> &contrib-target;
|
|
<!-- =================================================================== -->
|
|
<!-- Utility targets --> &util-target;
|
|
<!-- =================================================================== -->
|
|
<!-- Developer targets --> &dev-target;
|
|
<!-- =================================================================== -->
|
|
<!-- Testcases targets --> &test-target;
|
|
<!-- =================================================================== -->
|
|
<!-- "Scripts" targets --> &robot-target;
|
|
<!-- =================================================================== -->
|
|
<!-- Documentation targets --> &docs-target;
|
|
<!-- =================================================================== -->
|
|
|
|
</project>
|
|
|
|
<!-- End of file -->
|