https://github.com/apache/commons-lang
Raw File
Tip revision: 010845ae7b145637882f425b10552befeb77fdd3 authored by Henri Yandell on 29 July 2007, 03:42:34 UTC
Moving to TLP
Tip revision: 010845a
build.xml
<!--
/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
 -->
<!--
   "Lang" component of the Jakarta Commons Subproject
   $Id$
-->
<project name="Lang" default="compile" basedir=".">
	<!-- ========== Initialize Properties ===================================== -->
	<property file="${user.home}/${component.name}.build.properties"/>
	<property file="${user.home}/build.properties"/>
	<property file="${basedir}/build.properties"/>
	<property file="${basedir}/default.properties"/>
	<!-- The Sun Javadoc for versions prior to 1.3 are off-line. -->
	<property name="jdk.javadoc" value="http://java.sun.com/j2se/1.3/docs/api/"/>
	<!-- ========== Construct compile classpath =============================== -->
	<path id="compile.classpath">
		<pathelement location="${build.home}/classes"/>
	</path>
	<!-- ========== Construct unit test classpath ============================= -->
	<path id="test.classpath">
		<pathelement location="${build.home}/classes"/>
		<pathelement location="${build.home}/tests"/>
		<pathelement location="${junit.jar}"/>
	</path>
	<!-- ========== Executable Targets ======================================== -->
	<target name="init" description="Initialize and evaluate conditionals">
		<echo message="-------- ${component.name} ${component.version} --------"/>
		<filter token="name" value="${component.name}"/>
		<filter token="package" value="${component.package}"/>
		<filter token="version" value="${component.version}"/>
		<filter token="compile.source" value="${compile.source}"/>
		<filter token="compile.target" value="${compile.target}"/>
	</target>
	<target name="prepare" depends="init" description="Prepare build directory">
		<mkdir dir="${build.home}"/>
		<mkdir dir="${build.home}/classes"/>
		<mkdir dir="${build.home}/conf"/>
		<mkdir dir="${build.home}/tests"/>
	</target>
	<target name="static" depends="prepare" description="Copy static files to build directory">
		<tstamp/>
		<copy todir="${build.home}/conf" filtering="on">
			<fileset dir="${conf.home}" includes="*.MF"/>
		</copy>
	</target>
	<target name="compile" depends="static" description="Compile shareable components">
		<javac srcdir="${source.home}" destdir="${build.home}/classes" debug="${compile.debug}" deprecation="${compile.deprecation}" target="${compile.target}" source="${compile.source}" excludes="${compile.excludes}" optimize="${compile.optimize}">
			<classpath refid="compile.classpath"/>
		</javac>
		<copy todir="${build.home}/classes" filtering="on">
			<fileset dir="${source.home}" excludes="**/*.java"/>
		</copy>
	</target>
	<target name="compile.tests" depends="compile" description="Compile unit test cases">
		<javac srcdir="${test.home}" destdir="${build.home}/tests" debug="${compile.debug}" deprecation="off" target="${compile.target}" source="${compile.source}" optimize="${compile.optimize}">
			<classpath refid="test.classpath"/>
		</javac>
		<copy todir="${build.home}/tests" filtering="on">
			<fileset dir="${test.home}" excludes="**/*.java"/>
		</copy>
	</target>
	<target name="clean" description="Clean build and distribution directories">
		<delete dir="${build.home}"/>
		<delete dir="${dist.home}"/>
	</target>
	<target name="all" depends="clean,compile" description="Clean and compile all components"/>
	<target name="javadoc" depends="compile" description="Create component Javadoc documentation">
		<mkdir dir="${dist.home}"/>
		<mkdir dir="${dist.home}/docs"/>
		<mkdir dir="${dist.home}/docs/api"/>
		<javadoc sourcepath="${source.home}" destdir="${dist.home}/docs/api" overview="${source.home}/org/apache/commons/lang/overview.html" packagenames="org.apache.commons.*" excludepackagenames="${javadoc.excludepackagenames}" author="true" version="true" doctitle="&lt;h1&gt;${component.title}&lt;/h1&gt;" windowtitle="${component.title} (Version ${component.version})" bottom="Copyright &amp;copy; 2001-${copyright.end} - Apache Software Foundation" use="true" link="${jdk.javadoc}" source="${compile.source}">
			<classpath refid="compile.classpath"/>
		</javadoc>
	</target>
	<target name="dist" depends="compile,javadoc" description="Create binary distribution">
		<mkdir dir="${dist.home}"/>
		<copy file="LICENSE.txt" todir="${dist.home}"/>
		<copy file="NOTICE.txt" todir="${dist.home}"/>
		<copy file="RELEASE-NOTES.txt" todir="${dist.home}"/>
		<antcall target="jar"/>
	</target>
	<target name="dist-build" depends="clean,dist" description="Build binary distribution files">
        <copy file="${dist.home}/${final.name}.jar" todir="."/>
		<jar jarfile="${final.name}-sources.jar" basedir="${source.home}" manifest="${build.home}/conf/MANIFEST.MF"/>
		<jar jarfile="${final.name}-javadoc.jar" basedir="${dist.home}/docs/api" manifest="${build.home}/conf/MANIFEST.MF"/>
		<mkdir dir="${final.name}"/>
		<move todir="${final.name}/${final.name}">
			<fileset dir="${dist.home}"/>
		</move>
		<tar destfile="${final.name}.tar" basedir="${final.name}"/>
		<gzip zipfile="${final.name}.tar.gz" src="${final.name}.tar"/>
		<delete file="${final.name}.tar"/>
		<fixcrlf srcdir="${final.name}" eol="crlf" includes="**/*.txt"/>
		<zip destfile="${final.name}.zip" basedir="${final.name}"/>
		<delete dir="${final.name}"/>
	</target>
	<target name="jar" depends="compile" description="Create jar">
		<mkdir dir="${dist.home}"/>
		<mkdir dir="${build.home}/classes/META-INF"/>
		<copy file="LICENSE.txt" tofile="${build.home}/classes/META-INF/LICENSE.txt"/>
		<copy file="NOTICE.txt" tofile="${build.home}/classes/META-INF/NOTICE.txt"/>
		<jar jarfile="${dist.home}/${final.name}.jar" basedir="${build.home}/classes" manifest="${build.home}/conf/MANIFEST.MF" excludes="**/*.html"/>
	</target>
	<target name="install-jar" depends="jar" description="--> Installs jar file in ${lib.repo}">
		<copy todir="${lib.repo}" filtering="no">
			<fileset dir="${dist.home}">
				<include name="${final.name}.jar"/>
			</fileset>
		</copy>
	</target>
	<!-- ========== Unit Test Targets ========================================= -->
	<target name="test" depends="
                                compile.tests, 
                                test.lang,
                                test.builder,
						        test.enum,
						        test.enums,
                                test.exception,
                                test.math,
						        test.mutable,
        						test.text,
						        test.time" description="Run all unit test cases">
		<echo message="Running tests ..."/>
	</target>
	<macrodef name="runTestCase">
		<attribute name="classname"/>
		<sequential>
			<junit printsummary="true" showoutput="true" fork="${junit.fork}" haltonerror="${test.failonerror}">
				<classpath refid="test.classpath"/>
				<test name="@{classname}"/>
			</junit>
		</sequential>
	</macrodef>
	<target name="test.lang" depends="compile.tests">
		<runTestCase classname="org.apache.commons.lang.LangTestSuite"/>
	</target>
	<target name="test.builder" depends="compile.tests">
		<runTestCase classname="org.apache.commons.lang.builder.BuilderTestSuite"/>
	</target>
	<target name="test.enum" depends="compile.tests">
		<runTestCase classname="org.apache.commons.lang.enum.EnumTestSuite"/>
	</target>
	<target name="test.enums" depends="compile.tests">
		<runTestCase classname="org.apache.commons.lang.enums.EnumTestSuite"/>
	</target>
	<target name="test.exception" depends="compile.tests">
		<runTestCase classname="org.apache.commons.lang.exception.ExceptionTestSuite"/>
	</target>
	<target name="test.math" depends="compile.tests">
		<runTestCase classname="org.apache.commons.lang.math.MathTestSuite"/>
	</target>
	<target name="test.mutable" depends="compile.tests">
		<runTestCase classname="org.apache.commons.lang.mutable.MutableTestSuite"/>
	</target>
	<target name="test.text" depends="compile.tests">
		<runTestCase classname="org.apache.commons.lang.text.TextTestSuite"/>
	</target>
	<target name="test.time" depends="compile.tests">
		<runTestCase classname="org.apache.commons.lang.time.TimeTestSuite"/>
	</target>
</project>
back to top