Here ya go...thanks again my friend.

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] 
Sent: Monday, April 29, 2002 9:42 PM
To: [EMAIL PROTECTED]
Subject: RE: Problems with new maven project



Ron,

send me your ${maven.home}/build-maven.xml file.....
--
dIon Gillard, Multitask Consulting
Work:      http://www.multitask.com.au
Developers: http://adslgateway.multitask.com.au/developers

<?xml version="1.0"?>

<project name="maven" default="jar" basedir="..">

  <!-- These are the bare minimum set of JARs that maven needs to operate.
       We don't want to make a big JAR containing everything so we
       are creating a special maven-classpath reference which is
       used by the maven operations.
       
       This can be cleaned up a bit, these lines can be generated instead
       of being hardcoded but it gets us around the bootstrap problem
       and keeps us away from a big fat JAR.
  -->
  
  <path id="maven-classpath">
    <pathelement location="${lib.repo}/antlr.jar"/>
    <pathelement location="${lib.repo}/bcel.jar"/>
    <pathelement location="${lib.repo}/checkstyle-2.1.jar"/>
    <pathelement location="${lib.repo}/commons-beanutils-dev.jar"/>
    <pathelement location="${lib.repo}/commons-collections.jar"/>
    <pathelement location="${lib.repo}/commons-graph.jar"/>
    <pathelement location="${lib.repo}/commons-io.jar"/>
    <pathelement location="${lib.repo}/commons-lang-0.1-dev.jar"/>
    <pathelement location="${lib.repo}/commons-logging-1.0.jar"/>
    <pathelement location="${lib.repo}/commons-util-1.0-rc2-dev.jar"/>
    <pathelement location="${lib.repo}/commons-xo-1.0-dev.jar"/>
    <pathelement location="${lib.repo}/dom4j-1.3.jar"/>
    <pathelement location="${lib.repo}/jdepend.jar"/>
    <pathelement location="${lib.repo}/log4j-1.1.3.jar"/>
    <pathelement location="${lib.repo}/oro.jar"/>
    <pathelement location="${lib.repo}/regexp-1.2.jar"/>
    <pathelement location="${lib.repo}/velocity-1.3-dev.jar"/>
    <pathelement location="${lib.repo}/velocity-dvsl-0.43.jar"/>
    <pathelement location="${lib.repo}/maven.jar"/>
  </path>

  <!-- ================================================================== -->
  <!-- I N I T I A L I Z E                                                -->
  <!-- ================================================================== -->
  <!-- This deals with loading our path creation task that is used to:    -->
  <!--                                                                    --> 
  <!-- a) Construct a classpath from a descriptor file which allows us    -->
  <!--    to store our dependencies externally and makes a build          -->
  <!--    file reusable.                                                  -->
  <!--                                                                    -->
  <!-- b) Construct pattern sets that can be used for various task like   -->
  <!--    copying a set of resources into a JAR for deployment.           -->
  <!-- ================================================================== -->

  <target
    name="load-default-properties">

    <!-- Set default values for the build -->
    <property file="${maven.home}/default.properties" />
    
  </target>

  <target
    name="init"
    depends="verify-project">
  </target>

  <!-- ================================================================== -->
  <!-- V E R I F Y  P R O J E C T                                         -->
  <!-- ================================================================== -->

  <target
    name="verify-project" 
    description="o Update JARs required for building"
    depends="project-properties,load-default-properties,verify-project-proxy,verify-project-noproxy"
    if="verificationFailed">
    
    <fail message="">
    
    You are missing JARs that must be downloaded manually 
    before continuing with the build.
    
    </fail>
    
  </target>

  <target 
    name="prepare.httpget">    
    
    <taskdef 
      name="verify-project"
      className="org.apache.maven.ProjectVerifier">
      <classpath refid="maven-classpath"/>
    </taskdef>
  </target>

  <target 
    name="verify-project-noproxy" 
    unless="proxy.host" 
    depends="prepare.httpget">
    
    <verify-project
      projectDescriptor="project.xml"
      mavenLocalRepo="${maven.repo.local}"
      mavenRemoteRepo="${maven.repo.remote}"
    />
  </target>    

  <target 
    name="verify-project-proxy" 
    if="proxy.host" 
    depends="prepare.httpget">

    <verify-project
      projectDescriptor="project.xml"
      mavenLocalRepo="${maven.repo.local}"
      mavenRemoteRepo="${maven.repo.remote}"
      proxyHost="${proxy.host}"
      proxyPort="${proxy.port}"
    />
  </target>    

  <!-- ================================================================== -->
  <!-- P R O J E C T  P R O P E R T I E S                                 -->
  <!-- ================================================================== -->

  <!-- We can't do this until Ant 1.5 because references aren't forwarded
      in <ant> calls until then.
   
  <target
    name="project-properties"
    unless="pomLoaded">

    <taskdef
      name="project-properties"
      classname="org.apache.maven.ProjectProperties">
      <classpath refid="maven-classpath"/>
    </taskdef>

  </target>
  
  -->

  <target
    name="project-properties"
    depends="update-pom-check">
  
    <taskdef
      name="project-properties"
      classname="org.apache.maven.ProjectProperties">
      <classpath refid="maven-classpath"/>
    </taskdef>
    
    <!-- Here is where we need to add checks to see that the descriptor
         is up-to-date. So we need to:
         
         o Check for that the project.xml file is well-formed
         o Get current version listed in the POM
         o Get the version required by Maven
         o If there is a mismatch then update the POM
    -->
    
    <project-properties projectDescriptor="project.xml"/>

    <tstamp>
      <format property="current.year" pattern="yyyy" />
    </tstamp>
    
  </target>

  <target
    name="update-pom-check"
    unless="pomChecked">
    
    <taskdef
      name="update-pom-check"
      classname="org.apache.maven.UpdatePomCheck">
      <classpath refid="maven-classpath"/>
    </taskdef>
    
    <!-- This task will place a property into the build called
         'pomUpdateRequired' if the version of the POM is out of
         sync with what Maven expects.
    -->
    
    <update-pom-check
      projectDescriptor="project.xml"
    />      

    <echo>
      pomUpdateRequired = ${pomUpdateRequired}
    </echo>

    <antcall target="callUpdateDescriptor"/>

  </target>

  <target
    name="callUpdateDescriptor"
    if="pomUpdateRequired">
    
    <antcall target="update-descriptor"/>

    <taskdef
      name="format-pom"
      classname="org.apache.maven.XmlPomFormatter">
      <classpath refid="maven-classpath"/>
    </taskdef>

    <format-pom
      input="project.xml"
      output="project.xml.formatted"
    />

    <copy 
      tofile="project.xml" 
      file="project.xml.formatted"
      overwrite="true"
    />

    <delete file="project.xml.formatted"/>

  </target>

  <!-- ================================================================== -->
  <!-- U P D A T E  D E S C R I P T O R                                   -->
  <!-- ================================================================== -->
  <!-- Updates a project descriptor in XML form between different         -->
  <!-- versions of Maven.                                                 -->
  <!--                                                                    -->
  <!-- NOTE:                                                              -->
  <!-- This only accounts for a transformation across single version.     -->
  <!--                                                                    -->
  <!-- CONSTRAINTS:                                                       -->
  <!-- We need to make sure both ${fromVersion} and ${toVersion} are      -->
  <!-- set and that we have a dvsl transformation to handle the           -->
  <!-- request.                                                           -->
  <!-- ================================================================== -->

  <target
    name="updates-available">
    
    <echo>
    +------------------------------------------------------------------------------
    |
    | Updates available:
    | 
    | v1 to v2 -> ant -DfromVersion=1 -DtoVersion=2 maven:update-descriptor 
    |
    +------------------------------------------------------------------------------
    </echo>
    
  </target>

  <target 
    name="updateDvslExists"
    depends="fromVersion"
    if="fromVersion">
    
    <available
      property="updateDvslExists"
      value="true"
      file="${maven.home}/update/v${fromVersion}-v${toVersion}/update-descriptor.dvsl"
    />
    
  </target>

  <target
    name="checkUpdateDescriptor"
    depends="updateDvslExists"
    unless="updateDvslExists">
    
    <echo>
    +------------------------------------------------------------------------------
    |
    | ERROR: The specified update cannot be performed, please check your
    |        toVersion and fromVersion and try again. You can also use the
    |        'maven:available-updates' target to see which migration paths
    |        are available.
    |
    +------------------------------------------------------------------------------
    </echo>
    
  </target>

  <target 
    name="fromVersion"
    depends="toVersion"
    if="toVersion">
  </target>

  <target 
    name="toVersion"
    if="toVersion">
  </target>
  
  <target
    name="update-descriptor"
    depends="checkUpdateDescriptor"
    if="updateDvslExists"
    description="o Update Maven project descriptor">

    <echo>
    +------------------------------------------------------------------------------
    | N O T I C E 
    +------------------------------------------------------------------------------
    |
    | Updating project descriptor from version ${fromVersion} to version ${toVersion}
    |
    +------------------------------------------------------------------------------
    </echo>

    <taskdef 
      name="dvsl" classname="org.apache.tools.dvsl.DVSLTask">
      <classpath>
        <path refid="maven-classpath"/>
      </classpath>
    </taskdef>

    <!-- Make a copy of the project descriptor before attempting
         to move it forward to the next version.
    -->
    <copy 
      tofile="project.xml.v${fromVersion}" 
      file="project.xml"
    />

    <dvsl
      basedir="."
      destdir="./"
      extension=".xml"
      style="${maven.home}/update/v${fromVersion}-v${toVersion}/update-descriptor.dvsl"
      in="project.xml"
      out="project.xml.${toVersion}"
      toolboxfile="${docs.stylesheets}/toolbox.props"
    />
    
    <!-- Give our new project descriptor its proper name -->
    <copy 
      tofile="project.xml" 
      file="project.xml.${toVersion}"
      overwrite="true"
    />
    
    <!-- Get rid of the temporary copy -->    
    <delete file="project.xml.${toVersion}"/>
    
  </target>

  <!-- ================================================================== -->
  <!-- L O C A L   I N I T                                                -->
  <!-- ================================================================== -->

  <target
    name="local-init"
    depends="init">

    <mkdir dir="${build.dest}"/>
    <mkdir dir="${docs.dest}"/>

  </target>

  <!-- ================================================================== -->
  <!-- E N V I R O N M E N T                                              -->
  <!-- ================================================================== -->

  <target 
    name="env"
    depends="local-init">

    <property name="classpath" refid="classpath"/>

    <echo>
      java.home = ${java.home}
      user.home = ${user.home}
      lib.repo = ${lib.repo}
      
      Classpath:
      ${classpath}
    </echo>      
  </target>

  <!-- ================================================================== -->
  <!-- U P D A T E  M A V E N                                             -->
  <!-- ================================================================== -->

  <target
    name="maven-update-check"
    description="o Check to see if Maven itself needs updating">

    <!-- Set default values for the build. We don't want
         the project.xml to be mapped here. Need to clean up
         the init process and break it up into stages.
    -->
    <property file="${maven.home}/default.properties" />

    <taskdef 
      name="maven-update-check"
      className="org.apache.maven.UpdateMavenCheck">
      <classpath refid="maven-classpath"/>
    </taskdef>

    <maven-update-check/>
    
    <echo>
      mavenUpdateRequired = ${mavenUpdateRequired}
    </echo>      

  </target>

  <target
    name="maven-update"
    depends="maven-update-check"
    if="mavenUpdateRequired">
        
    <!-- We need to update the Maven installation so we need to
    
         1. Pull down the new distribution JAR (hopefully we can
            make this more efficient than having to replace the
            whole JAR but it will do for now).
            
         2. Move the old directory out of the way.
         
         3. Unpack the new distribution.
    -->
    
    <property name="mavenUpdateZip" value="maven-${mavenVersion}.zip"/>

    <!-- Grab the update zip file -->
    <get 
      src="${maven.updateSite}/${mavenUpdateZip}"
      dest="${lib.repo}/${mavenUpdateZip}"
      verbose="true"
    />

    <!-- Back up the old maven installation -->
    <zip
      zipfile="${lib.repo}/maven-${lastMavenVersion}.zip"
      basedir="${maven.home}"
    />

    <!-- Remove the the old maven.home directory -->
    <delete dir="${maven.home}"/>

    <!-- Make a the new one -->
    <mkdir dir="${maven.home}"/>
    
    <!-- Unpack the new installation -->
    <unzip
      src="${lib.repo}/${mavenUpdateZip}"
      dest="${maven.home}"
    />

    <!-- Run the little install/build.xml file -->
    <ant antfile="${maven.home}/install/build.xml"/>

    <!-- Remove the update zip file -->
    <delete file="${lib.repo}/${mavenUpdateZip}"/>

  </target>

  <target
    name="validate-pom">
    
    <taskdef 
      name="validate-pom" classname="org.apache.maven.XmlPomValidator">
      <classpath>
        <path refid="maven-classpath"/>
      </classpath>
    </taskdef>
    
    <validate-pom
      projectDescriptor="project.xml"
      xmlSchema="${maven.home}/project.xsd"
    />
    
  </target>
    

  <!-- ================================================================== -->
  <!-- U S A G E                                                          -->
  <!-- ================================================================== -->

  <target 
    name="usage">
    
    <echo message="use -projecthelp to see the available targets"/>
  </target>

  <!-- ================================================================== -->
  <!-- P R E P A R E  S O U R C E S                                       -->
  <!-- ================================================================== -->
  
  <target
    name="prepare-sources"
    if="maven.prepareSourceDirectory">
    
    <echo>
      maven.prepareSourceDirectory = ${maven.prepareSourceDirectory}
    </echo>
    
    <mkdir dir="${maven.prepareSourceDirectory}"/>
    
    <!-- We need to do this here but we need to make a
         fileset reference to make this easier.
    -->
    
    <!--
    <copy todir="${build.dir}">
      <fileset dir=".">
        <patternset refid="src.set.patternset"/>
      </fileset>
    </copy>
    -->
    
    <ant 
      antfile="${maven.delegatorBuildFile}"
      target="${maven.prepareSourceTarget}"
    />

    <touch file="${maven.prepareSourceDirectory}/PREPARED"/>

  </target>

  <!-- ================================================================== -->
  <!-- C O M P I L E                                                      -->
  <!-- ================================================================== -->

  <target
    name="compile"
    if="sourcesPresent"
    depends="local-init"
    description="o Compile project source code">
    <antcall target="do-compile"/>
  </target>

  <target
    name="do-compile"
    depends="env,prepare-sources,javac.compile,aspectj.compile"
    description="o Compile project source code"/>

  <!-- ================================================================== -->
  <!-- J A V A C  C O M P I L E                                           -->
  <!-- ================================================================== -->

  <target
    name="javac.compile"
    unless="build.includes.aspects"
    description="o Compile project source code with javac">

    <javac
      destdir="${build.dest}"
      excludes="**/package.html"
      debug="${compile.debug}"
      deprecation="${compile.deprecation}"
      optimize="${compile.optimize}">
      <src>
        <path refid="compile.src.set"/>
      </src>
      <classpath>
        <path refid="classpath"/>
        <pathelement path="${build.dest}"/>
      </classpath>
    </javac>
  </target>

  <!-- =================================================================== -->
  <!-- A S P E C T  C O M P I L E                                          -->
  <!-- =================================================================== -->

  <target
    name="aspectj.compile"
    if="build.includes.aspects"
    description="o Compile project source code with AspectJ compiler">

    <taskdef
      name="ajc"
      classname="org.aspectj.tools.ant.taskdefs.Ajc"/>

    <ajc 
      destdir="${build.dest}"
      excludes="**/package.html"
      debug="${compile.debug}"
      deprecation="${compile.deprecation}"
      optimize="${compile.optimize}">
      
      <src>
        <path refid="src.aspect.set"/>
      </src>
      <classpath>
        <path refid="classpath"/>
        <pathelement location="${aspectjrt.jar}"/>
        <pathelement location="${aspectjtools.jar}"/>
      </classpath>
    </ajc>

  </target>
  
  <!-- ================================================================== -->
  <!-- C H E C K S O U R C E                                              -->
  <!-- ================================================================== -->
  <target
    name="check-source"
    depends="local-init,env"
    if="sourcesPresent"
    description="o Check the source code for style violations">
    
    <taskdef 
      name="checkstyle"
      classname="com.puppycrawl.tools.checkstyle.CheckStyleTask">
      <classpath refid="maven-classpath"/>
    </taskdef>

    <taskdef name="dvsl" classname="org.apache.tools.dvsl.DVSLTask">
      <classpath>
        <path refid="maven-classpath"/>
      </classpath>
    </taskdef>

    <checkstyle
      lcurlyType="${checkstyle.lcurly.type}"
      lcurlyMethod="${checkstyle.lcurly.method}"
      lcurlyOther="${checkstyle.lcurly.other}"
      rcurly="${checkstyle.rcurly}"
      allowTabs="${checkstyle.allow.tabs}"
      allowProtected="${checkstyle.allow.protected}"
      allowPackage="${checkstyle.allow.package}"
      allowNoAuthor="${checkstyle.allow.no.author}"
      maxLineLen="${checkstyle.max.line.len}"
      maxMethodLen="${checkstyle.max.method.len}"
      maxConstructorLen="${checkstyle.max.constructor.len}"
      maxFileLen="${checkstyle.max.file.len}"
      ignoreImportLen="${checkstyle.ignore.import.len}"
      memberPattern="${checkstyle.member.pattern}"
      publicMemberPattern="${checkstyle.public.member.pattern}"
      paramPattern="${checkstyle.param.pattern}"
      constPattern="${checkstyle.const.pattern}"
      staticPattern="${checkstyle.static.pattern}"
      typePattern="${checkstyle.type.pattern}"
      methodPattern="${checkstyle.method.pattern}"
      localVarPattern="${checkstyle.local.var.pattern}"
      headerFile="${checkstyle.header.file}"
      headerLinesRegexp="${checkstyle.header.lines.regexp}"
      headerIgnoreLine="${checkstyle.header.ignore.line}"
      javadocScope="${checkstyle.javadoc.scope}"
      requirePackageHtml="${checkstyle.require.package.html}"
      ignoreImports="${checkstyle.ignore.imports}"
      ignoreWhitespace="${checkstyle.ignore.whitespace}"
      ignoreCastWhitespace="${checkstyle.ignore.cast.whitespace}"
      ignoreBraces="${checkstyle.ignore.braces}"
      failOnViolation="${checkstyle.fail.on.violation}"
      cacheFile="${checkstyle.cache.file}" >
      <fileset 
        dir="${src.dir}" 
        includes="${checkstyle.includes}"
        excludes="${checkstyle.excludes}"/>
      <formatter type="xml" toFile="${build.dir}/checkstyle-raw-report.xml"/> 
      <formatter type="plain" toFile="${build.dir}/checkstyle-raw-report.txt"/> 
    </checkstyle>

    <dvsl
      basedir="."
      style="${docs.stylesheets}/checkstyle.dvsl"
      toolboxfile="${docs.stylesheets}/toolbox.props"
      in="${build.dir}/checkstyle-raw-report.xml"
      out="${gen.docs}/checkstyle-report.xml">
      <!-- Need to add the maven jar to load the toolbox -->
      <classpath>
        <path refid="maven-classpath"/>
      </classpath>
      <tool name="toolbox.string.srcDir" value="${src.dir}"/>
    </dvsl>

  </target>
    
  <!-- ================================================================== -->
  <!-- J A R  R E S O U R C E S                                           -->
  <!-- ================================================================== -->
  
  <target
    name="jar-resources"
    depends="local-init,env"
    if="jar.resources.present">

    <!-- Copy any resources that must be present in the deployed
         JAR file.
    -->
    
    <echo>
      Copy resources into destination directory for deployment
      in the JAR.
    </echo>
    
    <copy todir="${build.dest}">
      <fileset dir="${jarResources.basedir}">
        <patternset refid="jar.resources.set"/>
      </fileset>
    </copy>
  </target>    

  <!-- ================================================================== -->
  <!-- J A R                                                              -->
  <!-- ================================================================== -->

  <target
    name="jar"
    depends="compile,jar-resources"
    description="o Generates the jakarta-turbine-maven JAR file (default)">

    <ant antfile="${maven.home}/build-test.xml" target="test"/>
    
    <jar
      jarfile="${build.dir}/${final.name}.jar"
      basedir="${build.dest}"
      excludes="**/package.html">
      <manifest>
        <attribute name="Built-By" value="${user.name}"/>
        <!-- name should be '/' separated, not '.' -->
        <section name="${package}">
          <attribute name="Specification-Title" value="${id}"/>
          <attribute name="Specification-Version" value="${currentVersion}"/>
          <attribute name="Specification-Vendor" value="${organization}"/>
          <attribute name="Implementation-Title" value="${package}"/>
          <attribute name="Implementation-Version" value="${currentVersion}"/>
          <attribute name="Implementation-Vendor" value="${organization}"/>
        </section>
      </manifest>
    </jar>

  </target>

  <!-- ================================================================== -->
  <!-- D I S T R I B U T I O N S                                          -->
  <!-- ================================================================== -->
  <!-- We want to be able to create distributions accurately by using     -->
  <!-- a repository identifier to extract a known set of sources from     -->
  <!-- the project's repository with which to create the distribution.    -->
  <!--                                                                    -->
  <!-- We use the ${maven.distBuildDirectory} to checkout a clean set     -->
  <!-- of sources denoted by ${tag} which must be specified on the        -->
  <!-- command line. After the sources have been checked out we proceed   -->
  <!-- to run the 'dist' target which will produce our distribution       -->
  <!-- deliverables with our fresh sources.                               -->
  <!--                                                                    -->
  <!-- You would use a command like the following to build a distribution -->
  <!-- for your project:                                                  -->
  <!--                                                                    -->   
  <!-- ant maven:dist -Dtag=MAVEN_B4                                      -->      
  <!-- ================================================================== -->

  <target name="dist" depends="dist-check-tag" if="tag">
    
    <antcall target="dist-checkout-sources"/>
    
  </target>

  <target
    name="dist-checkout-sources"
    depends="local-init">
    
    <!-- 
    
    Make sure the dist directory is remove so that we know
    we are starting with a clean slate. We will also place a
    file in ${maven.distBuildDirectory} which indicates that
    it is ok to build a distribution within that directory.
    
    -->
    
    <delete dir="${maven.distBuildDirectory}"/>
    <mkdir dir="${maven.distBuildDirectory}/${cvsModule}"/>
    <touch file="${maven.distBuildDirectory}/${cvsModule}/${maven.distBuildIndicator}"/>
    
    <cvs
      cvsRoot="${cvsRoot}"
      package="${cvsModule}"
      dest="${maven.distBuildDirectory}"
      tag="${tag}"
    />

    <!--
    
    Now that we have our freshly checked out sources we can use
    those sources to create our distribution.
    
    -->
    
    <ant 
      dir="${maven.distBuildDirectory}/${cvsModule}"
      target="maven:dist-build"
      inheritAll="false"
    />
    
    <!--
    
    The distributions have been created with fresh sources so
    lets move the distributions into a visible location and
    remove everything used to create the distributions so that
    no mistakes can be made unintentionally.
    
    -->
    
    <mkdir dir="${maven.distDirectory}"/>
    
    <copy todir="${maven.distDirectory}">
      <fileset dir="${maven.distBuildDirectory}/${cvsModule}/target">
        <include name="**/*.tar.gz"/>
        <include name="**/*.zip"/>
      </fileset>
    </copy>

    <delete dir="${maven.distBuildDirectory}"/>

  </target>

  <target
    name="dist-build"
    depends="init"
    description="o Create source and binary distributions">

    <property name="distDir" value="${maven.distBuildDirectory}/${final.name}"/>
    <mkdir dir="${distDir}"/>

    <antcall target="jar"/>
    <antcall target="javadocs"/>

    <!-- B I N A R Y  D I S T R I B U T I O N -->

    <echo>
      +-------------------------------------------------------+
      | C R E A T I N G  B I N A R Y  D I S T R I B U T I O N |
      +-------------------------------------------------------+
    </echo>

    <!-- Copy the project descriptor -->
    <copy todir="${distDir}" file="project.xml"/>

    <copy todir="${distDir}">
      <fileset dir="${build.dir}">
        <include name="build-maven.xml"/>
        <include name="README.txt"/>
        <include name="LICENSE*.txt"/>
      </fileset>
    </copy>

    <!-- Copy Jars -->
    <copy todir="${distDir}">
      <fileset dir="${build.dir}">
        <include name="**/*.jar"/>
      </fileset>
    </copy>

    <!-- Copy documentation -->
    <copy todir="${distDir}/docs">
      <fileset dir="${docs.dest}">
        <include name="**"/>
      </fileset>
    </copy>

    <!-- Create a tar.gz file -->
    <tar longfile="gnu" tarfile="${build.dir}/${final.name}.tar">
      <tarfileset dir="${build.dir}">
        <include name="${final.name}/**"/>
      </tarfileset>
    </tar>

    <gzip 
      zipfile="${build.dir}/${final.name}.tar.gz" 
      src="${build.dir}/${final.name}.tar"
    />
    
    <delete file="${build.dir}/${final.name}.tar"/>

    <!-- Create a zip file -->
    <zip zipfile="${build.dir}/${final.name}.zip">
      <zipfileset dir="${build.dir}">
        <include name="${final.name}/**"/>
      </zipfileset>
    </zip>

    <!-- S O U R C E  D I S T R I B U T I O N -->

    <echo>
      +-------------------------------------------------------+
      | C R E A T I N G  S O U R C E  D I S T R I B U T I O N |
      +-------------------------------------------------------+
    </echo>

    <delete>
      <fileset dir="${distDir}">
        <include name="**/*.jar"/>
      </fileset>
    </delete>

    <copy todir="${distDir}" file="build.xml"/>

    <!-- Copy Source -->
    <copy todir="${distDir}/src">
      <fileset dir="${src.dir}">
        <include name="**/*.java"/>
        <include name="**/*.xml"/>
        <include name="**/*.properties"/>
      </fileset>
    </copy>

    <!-- Create a tar.gz file -->
    <tar longfile="gnu" tarfile="${build.dir}/${final.name}-src.tar">
      <tarfileset dir="${build.dir}">
        <include name="${final.name}/**"/>
      </tarfileset>
    </tar>

    <gzip 
      zipfile="${build.dir}/${final.name}-src.tar.gz" 
      src="${build.dir}/${final.name}-src.tar"
    />
    
    <delete file="${build.dir}/${final.name}-src.tar"/>

    <!-- Create a zip file -->
    <zip zipfile="${build.dir}/${final.name}-src.zip">
      <zipfileset dir="${build.dir}">
        <include name="${final.name}/**"/>
      </zipfileset>
    </zip>

  </target>

  <target name="dist-check-tag" unless="tag">
    <echo>
      +-------------------------------------------------------+
      | The dist target will not execute correctly unless a   |
      | 'tag' property is provided, e.g.                      |
      |            ant maven:dist -Dtag=MAVEN_B4              |
      +-------------------------------------------------------+
    </echo>
  </target>
  <!-- ================================================================== -->
  <!-- I N S T A L L  J A R                                               -->
  <!-- ================================================================== -->

  <target 
    name="install-jar" 
    depends="jar"
    description="o Installs JAR file in local ${lib.repo}">
    
    <copy todir="${lib.repo}" filtering="no">
      <fileset dir="${build.dir}">
        <include name="${final.name}.jar"/>
      </fileset>
    </copy>
  </target>

  <!-- ================================================================== -->
  <!-- G U M P  D E S C R I P T O R                                       -->
  <!-- ================================================================== -->
  <!-- Converts a Maven descriptor to Gump format so that projects        -->
  <!-- using Maven can easily participate in Gump builds. This also       -->
  <!-- means that the Gump descriptor will be accurate because if         -->
  <!-- the project builds with Maven then the descriptor generated        -->
  <!-- for Gump will be correct. Distribution of responsibility.          -->
  <!-- ================================================================== -->

  <target
    name="gump-descriptor"
    depends="local-init"
    description="o Generate Gump descriptor from Maven descriptor">

    <taskdef 
      name="dvsl" classname="org.apache.tools.dvsl.DVSLTask">
      <classpath>
        <path refid="maven-classpath"/>
      </classpath>
    </taskdef>

    <dvsl
      basedir="."
      destdir="./"
      extension=".xml"
      style="${maven.home}/dvsl/gump/convert-project.dvsl"
      in="project.xml"
      out="gump.xml"
    />
  
    <taskdef
      name="gump-build"
      classname="org.apache.maven.BaseProjectTask">
      <classpath refid="maven-classpath"/>
    </taskdef>
                              
    <gump-build
      controlTemplate="build-gump.xml"
      outputDirectory="${basedir}"
      templatePath="${maven.home}"
      outputFile="build-gump.xml"
      projectDescriptor="project.xml"
    />
  
  </target>

  <!-- ================================================================== -->
  <!-- C L E A N                                                          -->
  <!-- ================================================================== -->

  <target 
    name="clean"
    depends="local-init"
    description="o Cleans up the build directory">
    <echo message="Cleaning up ${build.dir}"/>
    <delete dir="${build.dir}"/>
    <delete dir="${test.reportsDirectory}"/>
  </target>

  <!-- ================================================================== -->
  <!-- C O N V E N I E N C E  D E L E G A T O R S                         -->
  <!-- ================================================================== -->

  <target
    name="metrics">
    <ant antfile="${maven.home}/build-metrics.xml"/>
  </target>

  <target
    name="test">
    <ant antfile="${maven.home}/build-test.xml"/>
  </target>

  <target
    name="docs">
    <ant antfile="${maven.home}/build-docs.xml"/>
  </target>

  <target
    name="javadocs">
    <ant antfile="${maven.home}/build-docs.xml" target="javadocs"/>
  </target>

  <target
    name="deploy-site">
    <ant antfile="${maven.home}/build-docs.xml" target="deploy-site"/>
  </target>

  <!-- ================================================================== -->
  <!-- A N N O U N C E M E N T S                                          -->
  <!-- ================================================================== -->

  <target
    name="announce">
    
    <!-- Need to make sure all these values are set before trying
         to send an announcement so that we're not spamming
         people needlessly.
    -->
    
    <property file="${src.dir}/announcements/${announcement}.properties"/>
    
    <echo>
      from="${announcementFrom}" 
      tolist="${announcementRecipients}" 
      subject="${announcementSubject}"
      files="${announcementFile}"
      mailHost="${mailHost}"
    </echo>    
    
    <mail 
      from="${announcementFrom}" 
      tolist="${announcementRecipients}" 
      subject="${announcementSubject}"
      files="${announcementFile}"
      mailHost="${mailHost}"
    />
  
  </target>

</project>

Reply via email to