cmlenz 02/03/21 09:00:51
Modified: . build.xml
Log:
Some cleanup to our build file (I'll revert if someone objects, of course
;)):
- output from the 'detect' tag should be much better readable for humans,
by using actual names for libraries and more prettyprint formatting.
- added a 'detect.fail' task, which will be called from 'detect'. this
task will cause the whole build to fail if a required dependancy can't
be resolved. motivation: fail early rather than somewhere during
compilation.
- added descriptions for important targets.
Revision Changes Path
1.154 +115 -81 jakarta-slide/build.xml
Index: build.xml
===================================================================
RCS file: /home/cvs/jakarta-slide/build.xml,v
retrieving revision 1.153
retrieving revision 1.154
diff -u -r1.153 -r1.154
--- build.xml 18 Mar 2002 12:03:49 -0000 1.153
+++ build.xml 21 Mar 2002 17:00:51 -0000 1.154
@@ -35,7 +35,6 @@
<!-- =================================================================== -->
<!-- Dependencies Properties -->
<!-- =================================================================== -->
- <property name="catalina.dist" value="../jakarta-tomcat-4.0/dist" />
<property name="servlet.home"
value="../jakarta-servletapi/" />
<property name="servlet.jar"
@@ -59,13 +58,14 @@
<property name="commons-dbcp.jar" value="./lib/commons-dbcp.jar"/>
<property name="commons-pool.jar" value="./lib/commons-pool.jar"/>
<property name="commons-modeler.jar" value="./lib/commons-modeler.jar"/>
+ <property name="catalina.dist" value="../jakarta-tomcat-4.0/dist" />
<property name="naming.jar"
value="${catalina.dist}/common/lib/naming-common.jar"/>
<property name="resources.jar"
value="${catalina.dist}/common/lib/naming-resources.jar"/>
<property name="catalina.jar"
value="${catalina.dist}/server/lib/catalina.jar"/>
- <property name="struts.home" value="."/>
+ <property name="struts.home" value="../jakarta-struts/dist"/>
<property name="struts.jar"
value="${struts.home}/lib/struts.jar"/>
<property name="jstl.home"
@@ -283,8 +283,11 @@
<!-- =================================================================== -->
<!-- Detect -->
<!-- =================================================================== -->
- <target name="detect">
+ <target name="detect" depends="detect.display,detect.fail"
+ description="Display configuration and conditional compilation flags">
+ </target>
+ <target name="detect.display">
<available property="servlet.present"
classname="javax.servlet.Servlet"
classpath="${servlet.jar}" />
@@ -361,68 +364,93 @@
classname="javax.sql.DataSource"
classpath="${jdbc20ext.jar}" />
- <echo message="--- Build environment for ${final.name} ---" />
-
- <echo message="--- Flags (Note: If the {property name} is displayed, then the
component is not present)" />
-
- <echo message="--- Required Libraries ---" />
-
- <echo message="servlet.present (must be present) = ${servlet.present}" />
- <echo message="jaxp10.present (must be present) = ${jaxp10.present}" />
- <echo message="jdom.present (must be present) = ${jdom.present}" />
- <echo message="dom.present (must be present) = ${dom.present}" />
- <echo message="sax.present (must be present) = ${sax.present}" />
- <echo message="jta.present (must be present) = ${jta.present}" />
- <echo message="httpclient.present (must be present) = ${httpclient.present}" />
- <echo message="antlr.present (must be present) = ${antlr.present}" />
-
- <echo message="--- Optional Libraries ---" />
-
- <echo message="servlet23.present (optional) = ${servlet23.present}" />
- <echo message="jaxp11.present (optional) = ${jaxp11.present}" />
- <echo message="jmx.present (optional) = ${jmx.present}" />
- <echo message="modeler.present (optional) = ${modeler.present}" />
- <echo message="ant.present (optional) = ${ant.present}" />
- <echo message="junit.present (optional) = ${junit.present}" />
- <echo message="tomcat41.present (optional) = ${catalina.present}" />
- <echo message="xsl.present (optional) = ${xsl.present}" />
- <echo message="log4j.present (optional) = ${log4j.present}" />
- <echo message="jndi.present (optional) = ${jndi.present}" />
- <echo message="naming.present (optional) = ${naming.present}" />
- <echo message="resources.present (optional) = ${resources.present}" />
- <echo message="struts.present (optional) = ${struts.present}" />
- <echo message="jstl.present (optional) = ${jstl.present}" />
- <echo message="jdbc20ext.present (optional) = ${jdbc20ext.present}" />
-
- <echo message="--- Property values" />
-
- <echo message="ant.home=${ant.home}" />
- <echo message="catalina.dist=${catalina.dist}" />
- <echo message="servlet.jar=${servlet.jar}" />
- <echo message="jaxp.home=${jaxp.home}" />
- <echo message="jaxp.jar=${jaxp.jar}" />
- <echo message="xmlapi.jar=${xmlapi.jar}" />
- <echo message="xmlparser.jar=${xmlparser.jar}" />
- <echo message="jmx.home=${jmx.home}" />
- <echo message="jmx.jar=${jmx.jar}" />
- <echo message="junit.jar=${junit.jar}" />
- <echo message="log4j.jar=${log4j.jar}" />
- <echo message="jta.jar=${jta.jar}" />
- <echo message="catalina.jar=${catalina.jar}" />
- <echo message="resources.jar=${resources.jar}" />
- <echo message="naming.jar=${naming.jar}" />
- <echo message="commons-httpclient.jar=${commons-httpclient.jar}" />
- <echo message="tomcat.build=${tomcat.build}" />
- <echo message="struts.jar=${struts.jar}" />
- <echo message="jstl.jar=${jstl.jar}" />
- <echo message="slide.build=${slide.build}" />
- <echo message="slide.dist=${slide.dist}" />
- <echo message="webapp.dist=${webapp.dist}" />
- <echo message="slide.release=${slide.release}" />
- <echo message="slide.archive=${slide.archive}" />
- <echo message="webdavclient.build=${webdavclient.build}" />
- <echo message="webdavclient.dist=${webdavclient.dist}" />
-
+ <echo message="+-------------------------------------------------------" />
+ <echo message="| Build environment for ${name} ${version}" />
+ <echo message="| " />
+ <echo message="| Note: " />
+ <echo message="| If ${property.name} is displayed for a library " />
+ <echo message="| instead of 'true', that library is not present." />
+ <echo message="+-------------------------------------------------------" />
+ <echo message="" />
+ <echo message="Build options:" />
+ <echo message=" Generate debugging info ${compile.debug}" />
+ <echo message=" Display deprecation info ${compile.deprecation}" />
+ <echo message=" Optimize ${compile.optimize}" />
+ <echo message=" Build directory ${slide.build}" />
+ <echo message=" Distribution directory ${slide.dist}" />
+ <echo message=" Distribution archive name ${slide.archive}" />
+ <echo message="" />
+ <echo message="Required Libraries:" />
+ <echo message=" Servlet API (2.2 or later) ${servlet.present}" />
+ <echo message=" JAXP (1.0 or later) ${jaxp10.present}" />
+ <echo message=" XML DOM Level 2 API ${dom.present}" />
+ <echo message=" XML SAX 2 API ${sax.present}" />
+ <echo message=" Java Transaction API ${jta.present}" />
+ <echo message=" JDOM (beta 7 or later) ${jdom.present}" />
+ <!-- echo message=" Commons-Httpclient ${httpclient.present}" / -->
+ <echo message=" ANTLR ${antlr.present}" />
+ <echo message="" />
+ <echo message="Optional Libraries:" />
+ <echo message=" Servlet API 2.3 ${servlet23.present}" />
+ <echo message=" JAXP 1.1 ${jaxp11.present}" />
+ <echo message=" JDBC 2.0 optional package ${jdbc20ext.present}" />
+ <echo message=" JMX ${jmx.present}" />
+ <echo message=" Commons-Modeler ${modeler.present}" />
+ <echo message=" Ant ${ant.present}" />
+ <echo message=" Ant <style>-task ${xsl.present}" />
+ <echo message=" JUnit ${junit.present}" />
+ <echo message=" Log4J ${log4j.present}" />
+ <echo message=" JNDI ${jndi.present}" />
+ <echo message=" Struts (1.0 or later) ${struts.present}" />
+ <echo message=" JSTL (beta 1 or later) ${jstl.present}" />
+ <echo message=" Tomcat (4.1-dev) ${catalina.present}" />
+ <echo message=" Tomcat naming.jar ${naming.present}" />
+ <echo message=" Tomcat resources.jar ${resources.present}" />
+ <echo message="" />
+ <echo message="Library Locations:" />
+ <echo message=" Servlet API jar ${servlet.jar}" />
+ <echo message=" JAXP jar ${jaxp.jar}" />
+ <echo message=" XML DOM/SAX2 APIs jar ${xmlapi.jar}" />
+ <echo message=" XML Parser jar ${xmlparser.jar}" />
+ <echo message=" JTA jar ${jta.jar}" />
+ <echo message=" JDOM jar ${jdom.jar}" />
+ <!-- echo message=" Commons-Httpclient jar ${commons-httpclient.jar}" /
-->
+ <echo message=" ANTLR jar ${antlr.jar}" />
+ <echo message=" JDBC 2.0 optional package jar ${jdbc20ext.jar}" />
+ <echo message=" JMX jar ${jmx.jar}" />
+ <echo message=" Commons-Modeler jar ${commons-modeler.jar}" />
+ <echo message=" Ant jar ${ant.jar}" />
+ <echo message=" JUnit jar ${junit.jar}" />
+ <echo message=" Log4J jar ${log4j.jar}" />
+ <echo message=" JNDI jar ${jndi.jar}" />
+ <echo message=" Struts jar ${struts.jar}" />
+ <echo message=" JSTL implementation jar ${jstl.jar}" />
+ <echo message=" Tomcat 4 build directory ${tomcat.build}" />
+ <echo message=" Tomcat 4 dist directory ${catalina.dist}" />
+ <echo message=" Tomcat 4 catalina.jar ${catalina.jar}" />
+ <echo message=" Tomcat 4 resources.jar ${resources.jar}" />
+ <echo message=" Tomcat 4 naming.jar ${naming.jar}" />
+
+ <condition property="required.present">
+ <and>
+ <equals arg1="${servlet.present}" arg2="true"/>
+ <equals arg1="${jaxp10.present}" arg2="true"/>
+ <equals arg1="${jdom.present}" arg2="true"/>
+ <equals arg1="${dom.present}" arg2="true"/>
+ <equals arg1="${sax.present}" arg2="true"/>
+ <equals arg1="${jta.present}" arg2="true"/>
+ <!-- equals arg1="${httpclient.present}" arg2="true"/ -->
+ <equals arg1="${antlr.present}" arg2="true"/>
+ </and>
+ </condition>
+
+ </target>
+
+ <target name="detect.fail" unless="required.present">
+ <fail message="Failed dependancy">
+ One or more required libraries could not be found.
+ Please check your build.propertes file.
+ </fail>
</target>
@@ -472,7 +500,8 @@
<!-- =================================================================== -->
<!-- Build All : Main, Doc and JavaDoc -->
<!-- =================================================================== -->
- <target name="all" depends="clean,main,doc,javadoc"/>
+ <target name="all" depends="clean,dist"
+ description="Delete previous build and make core components distribution"/>
<!-- =================================================================== -->
@@ -557,7 +586,8 @@
<!-- =================================================================== -->
<!-- Build documentation -->
<!-- =================================================================== -->
- <target name="doc" depends="prepare" if="xsl.present">
+ <target name="doc" depends="prepare" if="xsl.present"
+ description="Generate documentation/website">
<style basedir="src/doc" destdir="${slide.build}/doc"
extension=".html" style="src/doc/stylesheets/slide.xsl"
@@ -739,8 +769,8 @@
<!-- Build a DAV client distribution -->
<!-- =================================================================== -->
<target name="webdav-client-dist"
- depends="webdav-client, webdav-client-dist-prepare,
- webdav-client-javadoc">
+ depends="webdav-client, webdav-client-dist-prepare,webdav-client-javadoc"
+ description="Build the WebDAV client library and command-line application">
<copy todir="${webdavclient.dist}/bin">
<fileset dir="${webdavclient.build}/bin">
@@ -864,7 +894,8 @@
<!-- =================================================================== -->
<!-- Clean build and distribution directories -->
<!-- =================================================================== -->
- <target name="clean">
+ <target name="clean"
+ description="Delete previous build">
<delete dir="${slide.build}"/>
<delete dir="${slide.dist}"/>
<delete>
@@ -879,7 +910,8 @@
<!-- =================================================================== -->
<!-- Build the Slide JavaDoc -->
<!-- =================================================================== -->
- <target name="javadoc" depends="prepare,util" unless="skip.javadoc">
+ <target name="javadoc" depends="prepare,util" unless="skip.javadoc"
+ description="Generate core API documentation">
<property name="copyright" value="" />
<javadoc sourcepath="src/share" destdir="${slide.build}/doc/javadoc"
doctitle="Slide ${version} API Documentation"
@@ -915,8 +947,9 @@
<!-- =================================================================== -->
<!-- Build a Slide distribution -->
<!-- =================================================================== -->
- <target name="dist" depends="main, examples, tests, prepare-dist, doc,
- javadoc">
+ <target name="dist"
+ depends="main, examples, tests, prepare-dist, doc,javadoc"
+ description="Make distribution of core components">
<copy file="src/etc/MANIFEST.MF"
tofile="${slide.build}/classes/MANIFEST.MF" />
@@ -1135,7 +1168,6 @@
<!-- Generate JavaDocs for the tag library components -->
<target name="taglib-javadoc" unless="skip.javadoc"
- description="Generate API docs for the Slide tag library"
depends="taglib-prepare">
<echo message="Generating the tag libraries API documentation..." />
<property name="copyright" value="" />
@@ -1289,7 +1321,6 @@
<!-- Generate JavaDocs for the admin-webapp -->
<target name="admin-javadoc" unless="skip.javadoc"
- description="Generate API docs for the Administration Webapp"
depends="admin-compile-prepare">
<echo message="Generating API documentation of the Admin Webapp..." />
<property name="copyright" value="" />
@@ -1552,9 +1583,11 @@
<!-- =================================================================== -->
<!-- Full distribution -->
<!-- =================================================================== -->
- <target name="full-dist" depends="dist, webdav-client-dist, webapp-dist,
- admin-dist, catalina-wrapper, catalina-dist, log4j-wrapper, jndi-wrapper,
- jmx-wrapper, testsuite-dist" />
+ <target name="full-dist"
+ depends="dist, webdav-client-dist, webapp-dist,admin-dist,catalina-wrapper,
+ catalina-dist, log4j-wrapper, jndi-wrapper,jmx-wrapper, testsuite-dist"
+ description="Make a full distribution (with all optional components)"
+ />
<!-- =================================================================== -->
@@ -1623,10 +1656,11 @@
<!-- =================================================================== -->
- <!-- Packages the distribution with ZIP and TAG-GZIP -->
+ <!-- Packages the distribution with ZIP and TAR-GZIP -->
<!-- =================================================================== -->
- <target name="release" depends="package-zip, package-tgz, package-src-all,
- package-testsuite-zip">
+ <target name="release"
+ depends="package-zip, package-tgz, package-src-all,package-testsuite-zip"
+ description="Packages the distribution with ZIP and TAR-GZIP">
</target>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>