leosimons    2003/11/13 04:41:08

  Modified:    .        maven-common-gump-build.xml
  Log:
  move this over from avalon/buildsystem
  
  Revision  Changes    Path
  1.4       +323 -42   avalon-excalibur/maven-common-gump-build.xml
  
  Index: maven-common-gump-build.xml
  ===================================================================
  RCS file: /home/cvs/avalon-excalibur/maven-common-gump-build.xml,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- maven-common-gump-build.xml       7 Jul 2003 16:50:43 -0000       1.3
  +++ maven-common-gump-build.xml       13 Nov 2003 12:41:08 -0000      1.4
  @@ -7,7 +7,42 @@
       <!-- note the lack of property file inclusion. You should
            do that from the script which calls this file. -->
   
  -    <target name="excalibur:warn-project.name" unless="project.name.set">
  +    <target name="avalon:warning" unless="do.not.warn">
  +        <echo>
  +=======================================================================
  +                          WARNING!
  +
  +  This buildfile is only here for gump integration. Please use
  +  maven (http://maven.apache.org/) for normal builds.
  +=======================================================================
  +        </echo>
  +    </target>
  +
  +    <target name="avalon:debug" unless="do.not.debug">
  +        <echo>
  +=======================================================================
  +DEBUG INFO
  +
  +  maven.src.dir             = ${maven.src.dir}
  +  maven.build.dir           = ${maven.build.dir}
  +  maven.compile.debug       = ${maven.compile.debug}
  +  maven.compile.deprecation = ${maven.compile.deprecation}
  +  maven.compile.optimize    = ${maven.compile.optimize}
  +
  +  project.name              = ${project.name}
  +  project.version           = ${project.version}
  +  project.copyright.year    = ${project.copyright.year}
  +
  +  java sources = ${maven.src.dir}/java
  +  java classes = ${maven.build.dir}/classes
  +  jarfile      = ${maven.build.dir}/${project.name}-${project.version}.jar
  +  javadocs     = ${maven.build.dir}/docs/apidocs
  +  junitreports = ${maven.build.dir}/docs/junitreports
  +=======================================================================
  +        </echo>
  +    </target>
  +
  +    <target name="avalon:warn-project.name" unless="project.name.set">
           <echo>
   =======================================================================
                             WARNING!
  @@ -23,11 +58,78 @@
           </echo>
       </target>
   
  -    <target name="excalibur:init">
  -        <condition property="project.name.set">
  -            <isset property="project.name"/>
  -        </condition>
  -        <antcall target="excalibur:warn-project.name"/>
  +    <target name="avalon:warn-avail-api-src" unless="api.src.present">
  +        <echo>
  +=======================================================================
  +                          NOTE!
  +
  +  The directory
  +
  +            ${maven.src.dir}/api
  +
  +  does not exist. This means the api jar that will be created will be
  +  empty.
  +=======================================================================
  +        </echo>
  +    </target>
  +
  +    <target name="avalon:warn-avail-impl-src" unless="impl.src.present">
  +        <echo>
  +=======================================================================
  +                          NOTE!
  +
  +  The directory
  +
  +            ${maven.src.dir}/impl
  +
  +  does not exist. This means the impl jar that will be created will be
  +  empty.
  +=======================================================================
  +        </echo>
  +    </target>
  +
  +    <target name="avalon:warn-avail-test-src" unless="test.src.present">
  +        <echo>
  +=======================================================================
  +                          NOTE!
  +
  +  The directory
  +
  +            ${maven.src.dir}/test
  +
  +  does not exist. This means no unit tests will be run.
  +=======================================================================
  +        </echo>
  +    </target>
  +
  +    <target name="avalon:warn-avail-no-sources" if="no.sources.available">
  +        <fail>
  +=======================================================================
  +                          ERROR!
  +
  +  This project does not contain any java source files in
  +
  +            ${maven.src.dir}/api        or
  +            ${maven.src.dir}/impl       or
  +            ${maven.src.dir}/java       or
  +            ${maven.src.dir}/test       or
  +
  +  that means it is not possible to generate any classes, jars or
  +  javadocs.
  +=======================================================================
  +        </fail>
  +    </target>
  +
  +    <target name="avalon:warn-avail">
  +        <antcall target="avalon:warn-avail-no-sources"/>
  +        <antcall target="avalon:warn-avail-api-src"/>
  +        <antcall target="avalon:warn-avail-impl-src"/>
  +        <antcall target="avalon:warn-avail-test-src"/>
  +    </target>
  +
  +    <target name="avalon:init">
  +        <antcall target="avalon:warning"/>
  +        <antcall target="avalon:debug"/>
   
           <!-- defaults -->
           <property name="maven.src.dir" value="${basedir}/src"/>
  @@ -44,68 +146,140 @@
               <format property="project.version" pattern="yyyyMMdd"/>
           </tstamp>
           <property name="project.copyright.year" value="1997-2003"/>
  -    </target>
   
  -    <target name="excalibur:debug" depends="excalibur:init" unless="do.not.debug">
  -        <echo>
  -=======================================================================
  -DEBUG INFO
  +        <condition property="project.name.set">
  +            <isset property="project.name"/>
  +        </condition>
  +        <antcall target="avalon:warn-project.name"/>
   
  -  maven.src.dir             = ${maven.src.dir}
  -  maven.build.dir           = ${maven.build.dir}
  -  maven.compile.debug       = ${maven.compile.debug}
  -  maven.compile.deprecation = ${maven.compile.deprecation}
  -  maven.compile.optimize    = ${maven.compile.optimize}
  +        <available file="${basedir}/src/api" property="api.src.present"/>
  +        <available file="${basedir}/src/impl" property="impl.src.present"/>
  +        <available file="${basedir}/src/java" property="java.src.present"/>
  +        <available file="${basedir}/src/test" property="test.src.present"/>
  +
  +        <condition property="no.sources.available">
  +                <and>
  +                    <not><isset property="api.src.present"/></not>
  +                    <not><isset property="impl.src.present"/></not>
  +                    <not><isset property="java.src.present"/></not>
  +                    <not><isset property="test.src.present"/></not>
  +                </and>
  +        </condition>
   
  -  project.name              = ${project.name}
  -  project.version           = ${project.version}
  -  project.copyright.year    = ${project.copyright.year}
  +        <antcall target="avalon:warn-avail"/>
  +    </target>
   
  -  java sources = ${maven.src.dir}/java
  -  java classes = ${maven.build.dir}/classes
  -  jarfile      = ${maven.build.dir}/${project.name}-${project.version}.jar
  -  javadocs     = ${maven.build.dir}/docs/apidocs
  +    <target name="avalon:jar"
  +        depends="avalon:init, avalon:api-compile, avalon:impl-compile, 
avalon:java-compile, avalon:test, avalon:api-jar, avalon:impl-jar, 
avalon:regular-jar"/>
  +
  +    <target name="avalon:java-compile" if="java.src.present"
  +            depends="avalon:init,avalon:api-compile,avalon:impl-compile">
  +        <echo>
  +=======================================================================
  + Compiling Sources
   =======================================================================
           </echo>
  +        <mkdir dir="${maven.build.dir}"/>
  +        <mkdir dir="${maven.build.dir}/classes"/>
  +        <mkdir dir="${maven.build.dir}/api-classes"/><!-- to ensure <classpath/> 
works -->
  +        <mkdir dir="${maven.build.dir}/impl-classes"/><!-- to ensure <classpath/> 
works -->
  +        <javac
  +                destdir="${maven.build.dir}/classes"
  +                excludes="**/package.html"
  +                debug="${maven.compile.debug}"
  +                deprecation="${maven.compile.deprecation}"
  +                optimize="${maven.compile.optimize}">
  +
  +            <src>
  +                <pathelement path="${maven.src.dir}/java"/>
  +                <pathelement path="${maven.build.dir}/api-classes"/>
  +                <pathelement path="${maven.build.dir}/impl-classes"/>
  +            </src>
  +        </javac>
  +
  +        <mkdir dir="${maven.build.dir}/src"/>
  +        <copy todir="${maven.build.dir}/src">
  +            <fileset dir="${maven.src.dir}/java"/>
  +        </copy>
       </target>
   
  -    <target name="excalibur:warning" depends="excalibur:init,excalibur:debug" 
unless="do.not.warn">
  +    <target name="avalon:api-compile" if="api.src.present"
  +            depends="avalon:init">
           <echo>
   =======================================================================
  -                          WARNING!
  -
  -  This buildfile is only here for gump integration. Please use
  -  maven (http://maven.apache.org/) for normal builds.
  + Compiling API Sources
   =======================================================================
           </echo>
  +        <mkdir dir="${maven.build.dir}"/>
  +        <mkdir dir="${maven.build.dir}/api-classes"/>
  +        <javac
  +                destdir="${maven.build.dir}/api-classes"
  +                excludes="**/package.html"
  +                debug="${maven.compile.debug}"
  +                deprecation="${maven.compile.deprecation}"
  +                optimize="${maven.compile.optimize}">
  +
  +            <src>
  +                <pathelement path="${maven.src.dir}/api"/>
  +            </src>
  +        </javac>
  +
  +        <mkdir dir="${maven.build.dir}/classes"/>
  +        <copy todir="${maven.build.dir}/classes">
  +            <fileset dir="${maven.build.dir}/api-classes"/>
  +        </copy>
  +        <mkdir dir="${maven.build.dir}/src"/>
  +        <copy todir="${maven.build.dir}/src">
  +            <fileset dir="${maven.src.dir}/api"/>
  +        </copy>
       </target>
   
  -    <target name="excalibur:jar" depends="excalibur:init,excalibur:warning">
  +    <target name="avalon:impl-compile" if="impl.src.present"
  +            depends="avalon:init,avalon:api-compile">
           <echo>
   =======================================================================
  - Compiling Sources
  + Compiling Implementation Sources
   =======================================================================
           </echo>
           <mkdir dir="${maven.build.dir}"/>
  -        <mkdir dir="${maven.build.dir}/classes"/>
  +        <mkdir dir="${maven.build.dir}/impl-classes"/>
  +        <mkdir dir="${maven.build.dir}/api-classes"/><!-- to ensure <classpath/> 
works -->
           <javac
  -                destdir="${maven.build.dir}/classes"
  +                destdir="${maven.build.dir}/impl-classes"
                   excludes="**/package.html"
                   debug="${maven.compile.debug}"
                   deprecation="${maven.compile.deprecation}"
                   optimize="${maven.compile.optimize}">
   
               <src>
  -                <pathelement path="${maven.src.dir}"/>
  +                <pathelement path="${maven.src.dir}/impl"/>
               </src>
  +            <classpath>
  +              <pathelement path="${maven.build.dir}/api-classes"/>
  +            </classpath>
           </javac>
   
  +        <mkdir dir="${maven.build.dir}/classes"/>
  +        <copy todir="${maven.build.dir}/classes">
  +            <fileset dir="${maven.build.dir}/impl-classes"/>
  +        </copy>
  +        <mkdir dir="${maven.build.dir}/src"/>
  +        <copy todir="${maven.build.dir}/src">
  +            <fileset dir="${maven.src.dir}/impl"/>
  +        </copy>
  +    </target>
  +
  +    <target name="avalon:test" if="test.src.present"
  +        
depends="avalon:init,avalon:api-compile,avalon:impl-compile,avalon:java-compile">
           <echo>
   =======================================================================
    Compiling Tests
   ======================================================================
           </echo>
           <mkdir dir="${maven.build.dir}/test-classes"/>
  +        <mkdir dir="${maven.build.dir}/classes"/><!-- to ensure <classpath/> works 
-->
  +        <mkdir dir="${maven.build.dir}/api-classes"/><!-- to ensure <classpath/> 
works -->
  +        <mkdir dir="${maven.build.dir}/impl-classes"/><!-- to ensure <classpath/> 
works -->
           <javac
                   destdir="${maven.build.dir}/test-classes"
                   excludes="**/package.html"
  @@ -117,7 +291,9 @@
                   <pathelement path="${maven.src.dir}/test"/>
               </src>
               <classpath>
  -              <pathelement path="${maven.build.dir}/classes"/>
  +                <pathelement path="${maven.build.dir}/classes"/>
  +                <pathelement path="${maven.build.dir}/api-classes"/>
  +                <pathelement path="${maven.build.dir}/impl-classes"/>
               </classpath>
           </javac>
   
  @@ -141,13 +317,14 @@
             <formatter type="xml"/>
             <formatter type="plain" usefile="${maven.junit.usefile}"/>
             <classpath>
  -            <pathelement location="${maven.build.dir}/classes"/>
  -            <pathelement location="${maven.build.dir}/test-classes"/>
  +              <pathelement location="${maven.build.dir}/classes"/>
  +              <pathelement path="${maven.build.dir}/api-classes"/>
  +              <pathelement path="${maven.build.dir}/impl-classes"/>
  +              <pathelement location="${maven.build.dir}/test-classes"/>
             </classpath>
  -          <batchtest todir="${maven.build.dir}/test-classes">
  +          <batchtest todir="${maven.build.dir}/test-reports">
               <fileset dir="${maven.src.dir}/test">
                   <include name="**/*TestCase.java"/>
  -                <!-- KEEP ALL ABSTRACT TESTS FROM BEING RUN! -->
                   <exclude name="**/*Abstract*"/>
               </fileset>
             </batchtest>
  @@ -155,23 +332,72 @@
   
           <echo>
   =======================================================================
  + Generating test reports
  +=======================================================================
  +        </echo>
  +
  +        <!-- note: this completely deviates from the approach maven
  +             takes to generating the junit reports and stores them
  +             in a different location. -->
  +
  +        <mkdir dir="${maven.build.dir}/docs/junitreports"/>
  +
  +        <junitreport todir="${maven.build.dir}/docs/junitreports">
  +            <fileset dir="${maven.build.dir}/test-reports">
  +                <include name="TEST-*.xml"/>
  +            </fileset>
  +            <report format="frames" todir="${maven.build.dir}/docs/junitreports"/>
  +        </junitreport>
  +
  +    </target>
  +
  +    <target name="avalon:regular-jar"
  +            
depends="avalon:init,avalon:api-compile,avalon:impl-compile,avalon:java-compile">
  +        <echo>
  +=======================================================================
    Building jar
   =======================================================================
           </echo>
  +        <mkdir dir="${maven.build.dir}/classes"/>
           <jar destfile="${maven.build.dir}/${project.name}-${project.version}.jar" 
basedir="${maven.build.dir}/classes"/>
       </target>
   
  -    <target name="excalibur:javadocs" 
depends="excalibur:init,excalibur:warning,excalibur:jar">
  +    <target name="avalon:api-jar"
  +            depends="avalon:init,avalon:api-compile">
  +        <echo>
  +=======================================================================
  + Building API jar
  +=======================================================================
  +        </echo>
  +        <mkdir dir="${maven.build.dir}/api-classes"/>
  +        <jar 
destfile="${maven.build.dir}/${project.name}-${project.version}-api.jar" 
basedir="${maven.build.dir}/api-classes"/>
  +    </target>
  +
  +    <target name="avalon:impl-jar"
  +            depends="avalon:init,avalon:impl-compile">
  +        <echo>
  +=======================================================================
  + Building Implementation jar
  +=======================================================================
  +        </echo>
  +        <mkdir dir="${maven.build.dir}/impl-classes"/>
  +        <jar 
destfile="${maven.build.dir}/${project.name}-${project.version}-impl.jar" 
basedir="${maven.build.dir}/impl-classes"/>
  +    </target>
  +
  +    <target name="avalon:javadocs" depends="avalon:init,avalon:jar">
           <mkdir dir="${maven.build.dir}/docs"/>
           <mkdir dir="${maven.build.dir}/docs/apidocs"/>
  +        <mkdir dir="${maven.build.dir}/classes"/><!-- to ensure <classpath/> works 
-->
  +        <mkdir dir="${maven.build.dir}/api-classes"/><!-- to ensure <classpath/> 
works -->
  +        <mkdir dir="${maven.build.dir}/impl-classes"/><!-- to ensure <classpath/> 
works -->
   
           <property name="copyright"
             value="Copyright &amp;copy; ${project.copyright.year} Apache Software 
Foundation. All Rights Reserved." />
   
  -        <property name="title" value="Avalon-Excalibur ${project.name} API"/>
  +        <property name="title" value="Avalon ${project.name} API"/>
   
           <javadoc
  -          sourcepath="${maven.src.dir}/java"
  +          sourcepath="${maven.build.dir}/src"
             packagenames="org.apache.*"
             destdir="${maven.build.dir}/docs/apidocs"
             windowtitle="${title}"
  @@ -182,8 +408,63 @@
             <link href="http://avalon.apache.org/framework/api/"/>
             <classpath>
               <path location="${maven.build.dir}/classes"/>
  +            <path location="${maven.build.dir}/api-classes"/>
  +            <path location="${maven.build.dir}/impl-classes"/>
             </classpath>
   
           </javadoc>
       </target>
  -</project>
  +
  +    <target name="avalon:distclean">
  +        <delete dir="${maven.build.dir}/${project.name}-${project.version}"/>
  +        <delete dir="${maven.build.dir}/dist"/>
  +    </target>
  +
  +    <target name="avalon:dist" 
depends="avalon:init,avalon:distclean,avalon:jar,avalon:javadocs">
  +        <mkdir dir="${maven.build.dir}"/>
  +        <mkdir dir="${maven.build.dir}/${project.name}-${project.version}"/>
  +        <mkdir dir="${maven.build.dir}/dist"/>
  +
  +        <echo>
  +=======================================================================
  + Building Binary Distribution
  +=======================================================================
  +        </echo>
  +        <mkdir dir="${maven.build.dir}/${project.name}-${project.version}/bin"/>
  +        <copy todir="${maven.build.dir}/${project.name}-${project.version}/bin">
  +            <fileset dir="${maven.build.dir}">
  +                <include name="*.jar"/>
  +                <include name="*.txt"/>
  +                <include name="*.zip"/>
  +                <include name="docs"/>
  +            </fileset>
  +        </copy>
  +        <zip 
destfile="${maven.build.dir}/dist/${project.name}-${project.version}-bin.zip">
  +            <zipfileset 
dir="${maven.build.dir}/${project.name}-${project.version}/bin"
  +                prefix="${project.name}-${project.version}"/>
  +        </zip>
  +
  +        <echo>
  +=======================================================================
  + Building Source Distribution
  +=======================================================================
  +        </echo>
  +        <mkdir dir="${maven.build.dir}/${project.name}-${project.version}/src"/>
  +        <copy todir="${maven.build.dir}/${project.name}-${project.version}/src">
  +            <fileset dir="${maven.src.dir}"/>
  +            <fileset dir="${maven.build.dir}">
  +                <include name="*.txt"/>
  +            </fileset>
  +            <fileset dir="${basedir}">
  +                <include name="README*"/>
  +                <include name="LICENSE*"/>
  +                <include name="maven.*"/>
  +                <include name="project.*"/>
  +            </fileset>
  +        </copy>
  +        <zip 
destfile="${maven.build.dir}/dist/${project.name}-${project.version}-src.zip">
  +            <zipfileset 
dir="${maven.build.dir}/${project.name}-${project.version}/src"
  +                prefix="${project.name}-${project.version}"/>
  +        </zip>
  +    </target>
  +</project>
  \ No newline at end of file
  
  
  

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

Reply via email to