From: "Tim Dawson" <[EMAIL PROTECTED]>

> > I think these are valid questions to ask. Or at least to put 
> > on the table so that
> > we can examine any unintended consequences of the decisions 
> > that are made.
> 
> I certainly think it will lead to easier to understand build
> files. Another use case is jakarta-taglibs... just take a minute
> to look at the way that 20+ projects inherit the same build.xml
> through an XML import.  The inheritance is really ugly, because
> Ant 1.x doesn't provide a good way to do it.
> 

I am very glad you point to those examples because they are a 
perfect example of the kind of build that I had in mind. 
Here is how you would do it:

<?xml version="1.0"?>

<project name="dbtags" default="main" extends="../common.xml" >

  <!-- create this file to store the locations of your dependant jars -->
  <property file="../build.properties"/>
  <property name="classpath" value="${servlet.jar}:${jdbc2_0-stdext.jar}"/>

  <target name="checkRequirements.pre">
    <antcall target="checkRequiredFile">
       <param name="file" value="${jdbc2_0-stdext.jar}"/>
       <param name="fail.message"               value="a jar file containing 
the jdbc2_0-stdext classes is required to compile the dbtags taglib. please 
define the property jdbc2_0-stdext.jar in your build.properties file and ensure 
that the file exists"/>
    </antcall>
  </target>
</project>

The project inherits most of its definitions from "../common.xml" (which is 
found using ANT file rules using ${basedir} and such).In common.xml you define 
the the following targets:
    <target name="checkRequirements.pre"/>    <target 
name="checkRequirements.post"/>
which are overloaded by the definition presented here. I think it provides a 
simple and clear way to look at the build file. 
> Users can always create spaghetti, whether its in one build file> or many 
> (through the xml import).  The best we can do is make it> easy to do "good" 
> things.> 
This is very true, and exactly what I am trying to present here.
Jose Alberto



--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to