OSDN Git Service

Added copyright notice to footer of Javadocs
[mikumikustudio/MikuMikuStudio.git] / build.xml
1 <?xml version="1.0"?>
2 <project name="jME" default="compile">
3   <description>
4     Ant Build File for the jME API.
5     $Id$
6   </description>
7   <!-- Since we have developers who use different tab-stop settings in their
8        editors and IDE's, please us spaces, not tabs, for indentation.
9        (Your editor or IDE has a setting to automatically change your tab
10        keystrokes into spaces). -->
11
12   <property file="build.properties" />
13   <!-- This is because build-import.xml uses ${name}: -->
14   <property name="name" value="${ant.project.name}"/>
15
16   <!--    defaults for build.properties:-->
17   <import file="build-import.xml" />
18
19   <property name="class" location="${build}" />
20   <property name="jars" location="${release}" />
21   <property name="webstart" location="jnlp" />
22
23   <property name="keyStore" value="jmeKeyStore" />
24   <property name="storepass" value="..." />
25   <property name="ftpuser" value="..." />
26   <property name="ftppassword" value="..." />
27   <property name="ftphost" value="ftp.jmonkeyengine.com" />
28     <!-- You may prefer to set javac.debug to false to reduce size. -->
29   <property name="javac.debug" value="true" />
30   <property name="javac.maxmem" value="256m" />
31   <property name="javac.source" value="1.5" />
32   <property name="javac.target" value="1.5" />
33     <!-- N.b. the .source and .target setting are NOT for source and target
34          directories, but for source and target JVM versions. -->
35   <property name="javac.debuglevel" value="lines,source" />
36     <!-- Having line numbers in debug output is useful for the 99.9%
37          of non-public builds, esp. for custom-builders who have
38          runtime problems.   - blaine  -->
39   <!--    end of defaults -->
40
41   <path id="classpath">
42     <fileset dir="${libs}">
43       <include name="**/*.jar" />
44     </fileset>
45     <pathelement path="${class}" />
46   </path>
47
48   <target name="init">
49     <echo message="${keyStore}" />
50     <mkdir dir="${src}" />
51     <mkdir dir="${class}" />
52     <mkdir dir="${data}" />
53     <mkdir dir="${doc}" />
54     <available property="_rtlp.param" value="_rtlogprops.present"
55                file="logging.properties"/>
56     <property name="_rtlp.param" value="_dummy"/>
57     <antcall target="-gen-rtlogprops">
58       <param name="${_trlp.param}" value="true"/>
59     </antcall>
60   </target>
61
62   <!-- Compiles all the jME classes, including com.jmex.* -->
63   <target name="compile" depends="init" description="generate jme classes">
64     <copy todir="${class}">
65       <fileset dir="${src}" includes="com/**" excludes="**/.*/**, **/*.java"/>
66     </copy>
67     <javac source="${javac.source}" target="${javac.target}"
68            debuglevel="${javac.debuglevel}"
69       srcdir="${src}" destdir="${class}" includes="com/**/*.java"
70       classpathref="classpath" listfiles="no" fork="true"
71       memoryMaximumSize="${javac.maxmem}" debug="${javac.debug}"/>
72   </target>
73
74   <target name="run-testchooser" depends="compile-test" description="Runs the TestChooser">
75     <condition property="jogl.arch.suffix" value="amd64">
76       <os arch="amd64"/>
77     </condition>
78     <property name="jogl.arch.suffix" value="i586"/>
79     <pathconvert property="native.libpath" setonempty="false">
80       <filelist dir="${libs}">
81         <file name="jogl/native/windows_${jogl.arch.suffix}"/>
82         <file name="jogl/native/macosx"/>
83         <file name="jogl/native/linux_${jogl.arch.suffix}"/>
84         <file name="lwjgl/native/linux"/>
85         <file name="lwjgl/native/macosx"/>
86         <file name="lwjgl/native/windows"/>
87         <file name="swt/linux"/>
88         <file name="swt/macosx-carbon"/>
89         <file name="swt/macosx-cocoa"/>
90         <file name="swt/windows"/>
91       </filelist>
92     </pathconvert>
93     <java classname="jmetest.TestChooser" fork="true" classpathref="classpath">
94       <jvmarg value="-Djava.library.path=${native.libpath}"/>
95     </java>
96   </target>
97
98   <target name="-enforce.jar.deps">
99     <dependset>
100       <srcfileset dir="build" includes="com/**"/>
101       <targetfileset dir="${jars}" excludes="**/.*/**" includes="*.jar"/>
102     </dependset>
103   </target>
104
105   <!-- Jar files for different parts of the jME API -->
106
107   <target name="dist-core" depends="compile, -enforce.jar.deps"
108          description="generate jme jar file">
109     <jar destfile="${jars}/jme.jar" basedir="${class}" update="no"
110          duplicate="fail" compress="true" includes="com/jme/**/*.class, com/jme/**/*.tga, com/jme/**/*.png, com/jme/**/*.glf, com/jme/**/*.vert, com/jme/**/*.frag" />
111   </target>
112   <target name="dist-audio" depends="compile, -enforce.jar.deps"
113           description="generate jme jar file (audio)">
114     <jar destfile="${jars}/jme-audio.jar" basedir="${class}" update="no"
115          duplicate="fail" compress="true"
116          includes="com/jmex/audio/**/*.class" />
117   </target>
118   <target name="dist-awt" depends="compile, -enforce.jar.deps"
119           description="generate jme jar file (awt)">
120     <jar destfile="${jars}/jme-awt.jar" basedir="${class}" update="no"
121          duplicate="fail" compress="true" includes="com/jmex/awt/**/*.class" />
122   </target>
123   <target name="dist-swt" depends="compile, -enforce.jar.deps"
124           description="generate jme jar file (swt)">
125     <jar destfile="${jars}/jme-swt.jar" basedir="${class}" update="no"
126          duplicate="fail" compress="true" includes="com/jmex/swt/**/*.class" />
127   </target>
128   <target name="dist-editors" depends="compile, -enforce.jar.deps"
129           description="generate jme jar file (editors)">
130     <jar destfile="${jars}/jme-editors.jar" basedir="${class}" update="no"
131          duplicate="fail" compress="true" includes="com/jmex/editors/**/*.class" />
132   </target>
133   <target name="dist-effects" depends="compile, -enforce.jar.deps"
134           description="generate jme jar file (effects)">
135     <jar destfile="${jars}/jme-effects.jar" basedir="${class}" update="no"
136          duplicate="fail" compress="true"
137          includes="com/jmex/effects/**/*.class, com/jmex/effects/**/data/*" />
138   </target>
139   <target name="dist-font" depends="compile, -enforce.jar.deps"
140           description="generate jme jar file (font)">
141     <jar destfile="${jars}/jme-font.jar" basedir="${class}" update="no"
142          duplicate="fail" compress="true" includes="com/jmex/font2d/**/*.class, com/jmex/font3d/**/*.class, com/jmex/angelfont/**/*.class, com/jmex/angelfont/**/*.png, com/jmex/angelfont/**/*.fnt" />
143   </target>
144   <target name="dist-gamestates" depends="compile, -enforce.jar.deps"
145           description="generate jme jar file (gamestates)">
146     <jar destfile="${jars}/jme-gamestates.jar" basedir="${class}" update="no"
147          duplicate="fail" compress="true" includes="com/jmex/game/**/*.class" />
148   </target>
149   <target name="dist-model" depends="compile, -enforce.jar.deps"
150           description="generate jme jar file (model)">
151     <jar destfile="${jars}/jme-model.jar" basedir="${class}" update="no"
152          duplicate="fail" compress="true" includes="com/jmex/model/**/*.class"
153          excludes="com/jmex/model/collada/**, com/jmex/model/ogrexml/**" />
154   </target>
155   <target name="dist-collada" depends="compile, -enforce.jar.deps"
156           description="generate jme jar file (collada)">
157     <jar destfile="${jars}/jme-collada.jar" basedir="${class}" update="no"
158          duplicate="fail" compress="true"
159          includes="com/jmex/model/collada/*.class">
160       <zipfileset src="lib/jme-colladabinding.jar"
161                   excludes="META-INF/readme.txt"/>
162     </jar>
163   </target>
164   <target name="dist-scene" depends="compile, -enforce.jar.deps"
165           description="generate jme jar file (scene)">
166     <jar destfile="${jars}/jme-scene.jar" basedir="${class}" update="no"
167          duplicate="fail" compress="true" includes="com/jmex/scene/**/*.class" />
168   </target>
169   <target name="dist-terrain" depends="compile, -enforce.jar.deps"
170           description="generate jme jar file (terrain)">
171     <jar destfile="${jars}/jme-terrain.jar" basedir="${class}" update="no"
172          duplicate="fail" compress="true"
173          includes="com/jmex/terrain/**/*.class" />
174   </target>
175   <target name="dist-ogrexml" depends="compile, -enforce.jar.deps"
176           description="generate jme jar file (ogrexml)">
177     <jar destfile="${jars}/jme-ogrexml.jar" basedir="${class}" update="no"
178          duplicate="fail" compress="true"
179          includes="com/jmex/model/ogrexml/**/*.class" />
180   </target>
181
182   <!-- Creates all the jME jars -->
183   <target name="dist-all" depends="dist-core, dist-terrain, dist-ogrexml, dist-audio, dist-awt, dist-swt, dist-effects, dist-model, dist-collada, dist-editors, dist-font, dist-gamestates, dist-scene" description="Generate all jar files" />
184
185   <target name="webdist-all" depends="dist-all" description="sign JARs for JNLP distribution">
186     <signjar jar="${jars}/jme.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
187     <signjar jar="${jars}/jme-awt.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
188     <signjar jar="${jars}/jme-swt.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
189     <signjar jar="${jars}/jme-audio.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
190     <signjar jar="${jars}/jme-editors.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
191     <signjar jar="${jars}/jme-effects.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
192     <signjar jar="${jars}/jme-font.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
193     <signjar jar="${jars}/jme-gamestates.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
194     <signjar jar="${jars}/jme-model.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
195     <signjar jar="${jars}/jme-collada.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
196     <signjar jar="${jars}/jme-scene.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
197     <signjar jar="${jars}/jme-terrain.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
198     <signjar jar="${jars}/jme-ogrexml.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
199   </target>
200
201   <target name="doc" depends="compile"
202           description="generate the javadoc documentation">
203     <dependset>
204       <srcfileset dir="${src}/com" excludes="**/.*/**"/>
205       <targetfileset dir="${doc}"/>
206     </dependset>
207     <available property="_passname" value="_docs.uptodate"
208                file="${doc}/index.html"/>
209     <property name="_passname" value="dummy"/>
210     <antcall target="-doc">
211       <param name="${_passname}" value="true"/>
212     </antcall>
213   </target>
214
215   <!-- Generates javadoc unless param is set -->
216   <target name="-doc" unless="_docs.uptodate">
217     <delete dir="${doc}"/>  <!-- The dependset leaves empty directories -->
218     <javadoc destdir="${doc}" useExternalFile="yes" author="true" version="true" use="true" package="yes" windowtitle="jME API" bottom="Copyright 2003-2009 jMonkeyEngine" maxmemory="256m">
219       <fileset dir="${src}/com" excludes="**/.*/**" includes="**/*.java" />
220     </javadoc>
221   </target>
222
223   <!-- Removes all compiled files and documentation, but leaves any created jars -->
224   <target name="clean" description="clean up">
225     <delete dir="${class}" />
226     <delete dir="${doc}" />
227     <delete>
228       <fileset dir="${src}" includes="**/*.class" />
229       <fileset dir="${release}" includes="jme*.jar" />
230       <fileset dir="${webstart}" includes="*.jar" />
231     </delete>
232   </target>
233
234   <target name="rebuild" depends="clean, compile"
235           description="build from clean"/>
236
237   <!-- *** jmetest-related build targets -->
238
239   <target name="compile-test" depends="compile" description="generate jme test classes">
240     <javac source="${javac.source}" target="${javac.target}"
241            debuglevel="${javac.debuglevel}"
242       srcdir="${src}" destdir="${class}" includes="jmetest/**/*.java"
243       classpathref="classpath" fork="true" memoryMaximumSize="${javac.maxmem}"
244       debug="${javac.debug}"/>
245     <!-- copy the resources into the build directory -->
246     <copy todir="${class}">
247       <fileset dir="${src}" includes="jmetest/**"
248                excludes="**/.*/**, **/*.java"/>
249     </copy>
250   </target>
251
252   <target name="dist-test" depends="dist-all, compile-test"
253     description="generate jme test class and data jars + dependent distro jars">
254     <!-- Jar the demo classes -->
255
256     <pathconvert property="jarclasspathlibs" pathsep=" " dirsep="/">
257       <path>
258         <fileset dir="${libs}">
259           <include name="*.jar" />
260         </fileset>
261       </path>
262       <mapper type="regexp" from=".*(lib.*)" to="\1" />
263     </pathconvert>
264     <pathconvert property="jarclasspathrelease" pathsep=" " dirsep="/">
265       <path>
266         <fileset dir="${jars}">
267           <include name="*.jar" />
268           <exclude name="jmetest.jar" />
269         </fileset>
270       </path>
271       <mapper type="regexp" from=".*target.(.*)" to="\1" />
272     </pathconvert>
273     <echo>${jarclasspathlibs} ${jarclasspathrelease}</echo>
274
275     <dependset>
276       <srcfileset dir="build"/>
277       <targetfileset dir="${jars}" excludes="**/.*/**" includes="jmetest*.jar"/>
278     </dependset>
279
280     <jar destfile="${jars}/jmetest.jar" basedir="${class}"
281          duplicate="fail" compress="true"
282          excludes="jmetest/**/data/**, com/**" index="yes">
283       <manifest>
284         <attribute name="Implementation-Title" value="${ant.project.name}" />
285         <attribute name="Implementation-Vendor" value="${vendor}" />
286         <attribute name="Version" value="${major}.${minor}" />
287         <attribute name="Class-Path" value="${jarclasspathlibs} ${jarclasspathrelease}" />
288         <attribute name="Main-Class" value="${mainclass}" />
289       </manifest>
290     </jar>
291
292     <!-- Jar the demo data -->
293     <jar destfile="${jars}/jmetest-data-cursor.jar" basedir="${class}"
294          duplicate="fail" compress="true" includes="jmetest/data/cursor/**" />
295     <jar destfile="${jars}/jmetest-data-images.jar" basedir="${class}"
296          duplicate="fail" compress="true" includes="jmetest/data/images/**" />
297     <jar destfile="${jars}/jmetest-data-model.jar" basedir="${class}"
298          duplicate="fail" compress="true" includes="jmetest/data/model/**" />
299     <jar destfile="${jars}/jmetest-data-skybox1.jar" basedir="${class}"
300          duplicate="fail" compress="true" includes="jmetest/data/skybox1/**" />
301     <jar destfile="${jars}/jmetest-data-sound.jar" basedir="${class}"
302          duplicate="fail" compress="true" includes="jmetest/data/sound/**" />
303     <jar destfile="${jars}/jmetest-data-texture.jar" basedir="${class}"
304          duplicate="fail" compress="true" includes="jmetest/data/texture/**" />
305   </target>
306
307   <target name="webdist-test" depends="dist-test" description="sign test jars for Webstart distribution">
308     <signjar jar="${jars}/jmetest.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
309     <signjar jar="${jars}/jmetest-data-cursor.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
310     <signjar jar="${jars}/jmetest-data-images.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
311     <signjar jar="${jars}/jmetest-data-model.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
312     <signjar jar="${jars}/jmetest-data-skybox1.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
313     <signjar jar="${jars}/jmetest-data-sound.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
314     <signjar jar="${jars}/jmetest-data-texture.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
315   </target>
316
317   <!-- Jar and sign all the libraries required by jME -->
318   <target name="webdist-nativelibs" description="jar and sign native libraries for Webstart distribution">
319     <dependset>
320       <srcfileset dir="lib"/>
321       <targetfileset dir="${webstart}" excludes="**/.*/**" includes="*.jar"/>
322     </dependset>
323
324     <!-- WHY ARE ALL THE NATIVE FILES update="yes"?
325          We are specifying exactly what we want in them, so we should not be
326          recreating them. -->
327
328     <!--  Jar and sign the Windows libraries -->
329     <jar destfile="${webstart}/lwjgl-windows.jar" duplicate="fail" update="yes"
330          basedir="lib/lwjgl/native/windows" includes="lwjgl.dll" />
331         <jar destfile="${webstart}/lwjgl-windows.jar" duplicate="fail" update="yes"
332          basedir="lib/lwjgl/native/windows" includes="lwjgl64.dll" />
333     <jar destfile="${webstart}/openal-windows.jar" duplicate="fail" update="yes"
334          basedir="lib/lwjgl/native/windows" includes="OpenAL32.dll" />
335         <jar destfile="${webstart}/openal-windows.jar" duplicate="fail"
336          basedir="lib/lwjgl/native/windows" includes="OpenAL64.dll" update="yes" />
337     <jar destfile="${webstart}/jinput-windows.jar" duplicate="fail"
338          basedir="lib/lwjgl/native/windows" includes="jinput-dx8.dll" update="yes" />
339     <jar destfile="${webstart}/jinput-windows.jar" duplicate="fail"
340          basedir="lib/lwjgl/native/windows" includes="jinput-raw.dll" update="yes" />
341     <signjar jar="${webstart}/lwjgl-windows.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
342     <signjar jar="${webstart}/openal-windows.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
343     <signjar jar="${webstart}/jinput-windows.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
344
345     <!-- Jar and sign Linux native libraries -->
346     <jar destfile="${webstart}/lwjgl-linux.jar" duplicate="fail"
347          basedir="lib/lwjgl/native/linux" includes="liblwjgl.so" update="yes" />
348     <jar destfile="${webstart}/lwjgl-linux.jar" duplicate="fail"
349          basedir="lib/lwjgl/native/linux" includes="liblwjgl64.so" update="yes" />
350     <jar destfile="${webstart}/openal-linux.jar" duplicate="fail"
351          basedir="lib/lwjgl/native/linux" includes="libopenal.so" update="yes" />
352     <jar destfile="${webstart}/openal-linux.jar" duplicate="fail"
353          basedir="lib/lwjgl/native/linux" includes="libopenal64.so" update="yes" />
354     <jar destfile="${webstart}/jinput-linux.jar" duplicate="fail"
355          basedir="lib/lwjgl/native/linux" includes="libjinput-linux.so" update="yes" />
356     <jar destfile="${webstart}/jinput-linux.jar" duplicate="fail"
357          basedir="lib/lwjgl/native/linux" includes="libjinput-linux64.so" update="yes" />
358     <signjar jar="${webstart}/lwjgl-linux.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
359     <signjar jar="${webstart}/openal-linux.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
360     <signjar jar="${webstart}/jinput-linux.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
361
362     <!-- Jar (eventually) and sign Mac native libraries -->
363     <jar destfile="${webstart}/lwjgl-mac.jar" duplicate="fail"
364          basedir="lib/lwjgl/native/macosx" includes="liblwjgl.jnilib" update="yes" />
365     <jar destfile="${webstart}/jinput-mac.jar" duplicate="fail"
366          basedir="lib/lwjgl/native/macosx" includes="libjinput-osx.jnilib" update="yes" />
367     <jar destfile="${webstart}/openal-mac.jar" duplicate="fail"
368          basedir="lib/lwjgl/native/macosx" includes="openal.dylib" update="yes" />
369
370     <signjar jar="${webstart}/lwjgl-mac.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
371     <signjar jar="${webstart}/openal-mac.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
372     <signjar jar="${webstart}/jinput-mac.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
373
374     <!-- Jar (eventually) and sign Solaris native libraries -->
375     <jar destfile="${webstart}/lwjgl-solaris.jar" duplicate="fail"
376          basedir="lib/lwjgl/native/solaris" includes="liblwjgl.so" update="yes" />
377     <jar destfile="${webstart}/openal-solaris.jar" duplicate="fail"
378          basedir="lib/lwjgl/native/solaris" includes="libopenal.so" update="yes" />
379
380     <signjar jar="${webstart}/lwjgl-solaris.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
381     <signjar jar="${webstart}/openal-solaris.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
382         
383     <!-- Sign the lwjgl jar -->
384     <signjar jar="lib/lwjgl/lwjgl.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
385     <signjar jar="lib/lwjgl/lwjgl_util.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
386     <signjar jar="lib/jorbis/jorbis-0.0.17.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
387     <signjar jar="lib/lwjgl/jinput.jar" alias="jme" keystore="${webstart}/${keyStore}" storepass="${storepass}" />
388   </target>
389
390   <target name="nightly" depends="webdist-all, webdist-nativelibs, webdist-test">
391     <echo>${libs}/*.jar</echo>
392     <zip zipfile="${release}/jME.zip">
393       <zipfileset dir="${libs}" prefix="lib">
394         <include name="*.jar" />
395         <include name="*.dll" />
396         <include name="*.so" />
397         <include name="*.*lib" />
398       </zipfileset>
399       <fileset dir="${release}">
400         <include name="*.jar" />
401       </fileset>
402     </zip>
403     <zip zipfile="${release}/src.zip">
404       <zipfileset dir="${src}" prefix="src" excludes="**/.*/**"/>
405     </zip>
406     <!--        <mkdir dir="ftp"/>-->
407     <!--        <copy todir="ftp">-->
408     <ftp server="${ftphost}" userid="${ftpuser}" password="${ftppassword}" remotedir="nightly">
409       <fileset dir="${webstart}">
410         <include name="*.jar" />
411         <include name="*.jnlp" />
412       </fileset>
413       <fileset dir="${libs}">
414         <include name="*.jar" />
415       </fileset>
416       <fileset dir="${release}">
417         <include name="*.jar" />
418         <include name="jME.zip" />
419         <include name="src.zip" />
420       </fileset>
421     </ftp>
422     <!--        </copy>-->
423   </target>
424
425   <target name="-gen-rtlogprops" unless="_rtlogprops.present">
426     <copy file="logging-template.properties" tofile="logging.properties"/>
427   </target>
428 </project>