some comment stripping
[sdbl4j] / build.xml
1 <!--\r
2      General purpose build script for web applications and web services,\r
3      including enhanced support for deploying directly to a Tomcat 5\r
4      based server.\r
5 \r
6      This build script assumes that the source code of your web application\r
7      is organized into the following subdirectories underneath the source\r
8      code directory from which you execute the build script:\r
9 \r
10         docs                 Static documentation files to be copied to\r
11                              the "docs" subdirectory of your distribution.\r
12 \r
13         src                  Java source code (and associated resource files)\r
14                              to be compiled to the "WEB-INF/classes"\r
15                              subdirectory of your web applicaiton.\r
16 \r
17         web                  Static HTML, JSP, and other content (such as\r
18                              image files), including the WEB-INF subdirectory\r
19                              and its configuration file contents.\r
20 \r
21 -->\r
22 \r
23 \r
24 <!-- A "project" describes a set of targets that may be requested\r
25      when Ant is executed.  The "default" attribute defines the\r
26      target which is executed if no specific target is requested,\r
27      and the "basedir" attribute defines the current working directory\r
28      from which Ant executes the requested task.  This is normally\r
29      set to the current working directory.\r
30 -->\r
31 \r
32 <project name="sdbl4j" default="dist" basedir=".">\r
33 \r
34 \r
35 \r
36 <!-- ===================== Property Definitions =========================== -->\r
37 \r
38 \r
39 <!--\r
40 \r
41   Each of the following properties are used in the build script.\r
42   Values for these properties are set by the first place they are\r
43   defined, from the following list:\r
44 \r
45   * Definitions on the "ant" command line (ant -Dfoo=bar compile).\r
46 \r
47   * Definitions from a "build.properties" file in the top level\r
48     source directory of this application.\r
49 \r
50   * Definitions from a "build.properties" file in the developer's\r
51     home directory.\r
52 \r
53   * Default definitions in this build.xml file.\r
54 \r
55   You will note below that property values can be composed based on the\r
56   contents of previously defined properties.  This is a powerful technique\r
57   that helps you minimize the number of changes required when your development\r
58   environment is modified.  Note that property composition is allowed within\r
59   "build.properties" files as well as in the "build.xml" script.\r
60 \r
61 -->\r
62 \r
63   <property file="build.properties"/>\r
64   <property file="${user.home}/build.properties"/>\r
65 \r
66 \r
67 <!-- ==================== File and Directory Names ======================== -->\r
68 \r
69 \r
70 <!--\r
71 \r
72   These properties generally define file and directory names (or paths) that\r
73   affect where the build process stores its outputs.\r
74 \r
75   app.name             Base name of this application, used to\r
76                        construct filenames and directories.\r
77                        Defaults to "myapp".\r
78 \r
79   app.path             Context path to which this application should be\r
80                        deployed (defaults to "/" plus the value of the\r
81                        "app.name" property).\r
82 \r
83   app.version          Version number of this iteration of the application.\r
84 \r
85   build.home           The directory into which the "prepare" and\r
86                        "compile" targets will generate their output.\r
87                        Defaults to "build".\r
88 \r
89   dist.home            The name of the base directory in which\r
90                        distribution files are created.\r
91                        Defaults to "dist".\r
92 \r
93   manager.password     The login password of a user that is assigned the\r
94                        "manager" role (so that he or she can execute\r
95                        commands via the "/manager" web application)\r
96 \r
97   manager.url          The URL of the "/manager" web application on the\r
98                        Tomcat installation to which we will deploy web\r
99                        applications and web services.\r
100 \r
101   manager.username     The login username of a user that is assigned the\r
102                        "manager" role (so that he or she can execute\r
103                        commands via the "/manager" web application)\r
104 \r
105 -->\r
106 \r
107   <property name="app.name"      value="sdbl4j"/>\r
108   <property name="app.path"      value="/${app.name}"/>\r
109   <property name="app.version"   value="1.0"/>\r
110   <property name="build.home"    value="${basedir}/build"/>\r
111   <property name="dist.home"     value="${basedir}/dist"/>\r
112   <property name="src.home"      value="${basedir}/src"/>\r
113 \r
114 \r
115 <!--  ==================== Compilation Control Options ==================== -->\r
116 \r
117 <!--\r
118 \r
119   These properties control option settings on the Javac compiler when it\r
120   is invoked using the <javac> task.\r
121 \r
122   compile.debug        Should compilation include the debug option?\r
123 \r
124   compile.deprecation  Should compilation include the deprecation option?\r
125 \r
126   compile.optimize     Should compilation include the optimize option?\r
127 \r
128 -->\r
129 \r
130   <property name="compile.debug"       value="true"/>\r
131   <property name="compile.deprecation" value="false"/>\r
132   <property name="compile.optimize"    value="true"/>\r
133 \r
134 \r
135 \r
136 <!-- ==================== Compilation Classpath =========================== -->\r
137 \r
138 <!--\r
139 \r
140   Rather than relying on the CLASSPATH environment variable, Ant includes\r
141   features that makes it easy to dynamically construct the classpath you\r
142   need for each compilation.  The example below constructs the compile\r
143   classpath to include the servlet.jar file, as well as the other components\r
144   that Tomcat makes available to web applications automatically, plus anything\r
145   that you explicitly added.\r
146 \r
147 -->\r
148 \r
149   <path id="compile.classpath">\r
150 \r
151     <fileset dir="${basedir}/lib">\r
152       <include name="*.jar"/>\r
153     </fileset>\r
154 \r
155   </path>\r
156 \r
157 \r
158 \r
159 <!-- ==================== Clean Target ==================================== -->\r
160 \r
161 <!--\r
162 \r
163   The "clean" target deletes any previous "build" and "dist" directory,\r
164   so that you can be ensured the application can be built from scratch.\r
165 \r
166 -->\r
167 \r
168   <target name="clean">\r
169     <delete dir="${build.home}"/>\r
170     <delete dir="${dist.home}"/>\r
171   </target>\r
172 \r
173 \r
174 \r
175 <!-- ==================== Compile Target ================================== -->\r
176 \r
177 <!--\r
178 \r
179   The "compile" target transforms source files (from your "src" directory)\r
180   into object files in the appropriate location in the build directory.\r
181   This example assumes that you will be including your classes in an\r
182   unpacked directory hierarchy under "/WEB-INF/classes".\r
183 \r
184 -->\r
185 \r
186   <target name="compile" description="Compile Java sources">\r
187 \r
188     <!-- Compile Java classes as necessary -->\r
189     <mkdir    dir="${build.home}/classes"/>\r
190     <javac srcdir="${src.home}/java"\r
191           destdir="${build.home}/classes"\r
192             debug="${compile.debug}"\r
193       deprecation="${compile.deprecation}"\r
194          optimize="${compile.optimize}">\r
195         <classpath refid="compile.classpath"/>\r
196         <compilerarg value="-Xlint"/>\r
197     </javac>\r
198 \r
199   </target>\r
200 \r
201 \r
202 \r
203 <!-- ==================== Dist Target ===================================== -->\r
204 \r
205 \r
206 <!--\r
207 \r
208   The "dist" target creates a binary distribution of your application\r
209   in a directory structure ready to be archived in a tar.gz or zip file.\r
210   Note that this target depends on two others:\r
211 \r
212   * "compile" so that the entire web application (including external\r
213     dependencies) will have been assembled\r
214 \r
215   * "javadoc" so that the application Javadocs will have been created\r
216 \r
217 -->\r
218 \r
219   <target name="dist" depends="compile" description="Create binary distribution">\r
220 \r
221     <mkdir dir="${dist.home}"/>\r
222     <jar jarfile="${dist.home}/${app.name}-${app.version}.jar" basedir="${build.home}/classes"/>\r
223 \r
224   </target>\r
225 \r
226 \r
227 </project>\r