123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- <?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 -->
|