You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

build.xml 7.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. <?xml version="1.0"?>
  2. <!DOCTYPE project [
  3. <!ENTITY preinit-target SYSTEM "./tools/targets/preinit.xtarget">
  4. <!ENTITY init-target SYSTEM "./tools/targets/init.xtarget">
  5. <!ENTITY compile-target SYSTEM "./tools/targets/compile.xtarget">
  6. <!ENTITY interactive-target SYSTEM "./tools/targets/interactive.xtarget">
  7. <!ENTITY scratchpad-target SYSTEM "./tools/targets/scratchpad.xtarget">
  8. <!ENTITY contrib-target SYSTEM "./tools/targets/contrib.xtarget">
  9. <!ENTITY util-target SYSTEM "./tools/targets/util.xtarget">
  10. <!ENTITY dev-target SYSTEM "./tools/targets/dev.xtarget">
  11. <!ENTITY test-target SYSTEM "./tools/targets/test.xtarget">
  12. <!ENTITY robot-target SYSTEM "./tools/targets/robot.xtarget">
  13. <!ENTITY docs-target SYSTEM "./tools/targets/docs.xtarget">
  14. ]>
  15. <project default="interactive" basedir="." name="krysalis">
  16. <!-- ===========================================================================
  17. * ===================================== *
  18. | Krysalis Centipede Build System |
  19. * ===================================== *
  20. by
  21. Nicola Ken Barozzi <barozzi@nicolaken.com>
  22. Marc Johnson <mjohnson at apache dot org>
  23. extends the Apache Cocoon Build System
  24. (http://xml.apache.org/cocoon/)
  25. by
  26. Stefano Mazzocchi <stefano@apache.org>
  27. Carsten Ziegeler <cziegeler@apache.org>
  28. Installing the build tools
  29. ==========================
  30. The Krysalis build system is based on Apache Ant, which is a Java building tool
  31. originally developed for the Tomcat project but now used in many other
  32. Apache projects and extended by many developers.
  33. Ant is a little but very handy tool that uses a build file written in XML
  34. (this file) as building instructions. For more information refer to
  35. "http://jakarta.apache.org/ant/".
  36. To make things easier for you, this distribution contains a precompiled
  37. version of Ant and the build scripts take care of running it.
  38. The only thing that you have to make sure, is the "JAVA_HOME" environment
  39. property should be set to match the JVM you want to use.
  40. That's all you have to do to be ready to go.
  41. Building instructions
  42. =====================
  43. First, make sure your current working directory is where this very file
  44. is located. Then type
  45. ./build.sh (unix)
  46. .\build.bat (win32)
  47. if everything is right and all the required packages are visible, this action
  48. will start the build and prompt you with options.
  49. Note, that if you do further development, compilation time is reduced since
  50. Ant is able of detecting which files have changed and to recompile them at need.
  51. Also, you'll note that reusing a single JVM instance for each task, increases
  52. tremendously the performance of the whole build system, compared to other
  53. tools (i.e. make or shell scripts) where a new JVM is started for each task.
  54. Building on another directory
  55. =============================
  56. Sometimes you might want to build on an external directory to keep the
  57. distribution clean: no worries, this is just an environment property away.
  58. Suppose you want to use the "../build" directory instead, you simply tipe
  59. [unix] ./build.sh -Dbuild.root=../build
  60. [win32] .\build.bat -Dbuild.root=..\build
  61. By using the -Dxxx=yyy argument, you are setting environments in the JVM: Ant
  62. is designed to give higher priority to system environments to allow you to
  63. modify _any_ <property> that you can find in the building instructions below,
  64. so it's just a matter of understanding what property you want to change
  65. and you don't have to touch this file (which you shouldn't need to do).
  66. Build targets
  67. =============
  68. The build system is not only responsible of compiling the project into a jar
  69. file, but is also responsible for creating the HTML documentation, javadocs,
  70. distributions and web site. In fact, the file you have here is _exactly_ what
  71. is used by project maintainers to take care of everything in the project,
  72. no less and no more.
  73. To know more about the available targets take a look at this file, which is
  74. pretty self-explanatory.
  75. To see al list of all targets, type
  76. [unix] ./build.sh -projecthelp
  77. [win32] .\build.bat -projecthelp
  78. Build Dependencies
  79. ==================
  80. Some components are optional and require special jar files to be compiled
  81. and added to the application. Some of these jars are already included
  82. in the distribution while others not.
  83. For each optional package which is not available, a warning can be
  84. printed. If you don't like these warnings, specify the property "omit.opt.warnings"
  85. (build -Domit.opt.warnings).
  86. Distribution Version
  87. ====================
  88. When preparing a distribution for release, specify the version ID on
  89. the command line: -Dversion="dev-1.2.1", for example.
  90. Specifying a subset of unit tests to be executed
  91. ================================================
  92. Specify the package on the command line:
  93. -Dtest.specific="org.krysalis.p.testme" will select only the testme
  94. tests to be run. If you've run any other unit tests in a prior
  95. session, you'll need to specify the 'clean' target to remove
  96. extraneous test classes from execution:
  97. ./build.sh clean test -Dtest.specific="org/krysalis/p/testme"
  98. or
  99. .\build.bat clean test -Dtest.specific="org/krysalis/p/testme"
  100. Happy hacking from the Dev Team :)
  101. ============================================================================ -->
  102. <!-- =================================================================== -->
  103. <!-- external reference are relative to to tools/targets/*.xtarget -->
  104. <!-- =================================================================== -->
  105. <!-- Pre Initialization --> &preinit-target;
  106. <!-- =================================================================== -->
  107. <!-- Initialization targets --> &init-target;
  108. <!-- =================================================================== -->
  109. <!-- Compile targets --> &compile-target;
  110. <!-- =================================================================== -->
  111. <!-- Interactive targets --> &interactive-target;
  112. <!-- =================================================================== -->
  113. <!-- Scratchpad targets --> &scratchpad-target;
  114. <!-- =================================================================== -->
  115. <!-- Contrib targets --> &contrib-target;
  116. <!-- =================================================================== -->
  117. <!-- Utility targets --> &util-target;
  118. <!-- =================================================================== -->
  119. <!-- Developer targets --> &dev-target;
  120. <!-- =================================================================== -->
  121. <!-- Testcases targets --> &test-target;
  122. <!-- =================================================================== -->
  123. <!-- "Scripts" targets --> &robot-target;
  124. <!-- =================================================================== -->
  125. <!-- Documentation targets --> &docs-target;
  126. <!-- =================================================================== -->
  127. </project>
  128. <!-- End of file -->