243 lines
14 KiB
XML
243 lines
14 KiB
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 Apache Commons Subproject
|
|
$Id: build.xml 1583140 2014-03-30 13:51:54Z britter $
|
|
-->
|
|
<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"/>
|
|
<property name="jdk.javadoc" value="http://docs.oracle.com/javase/6/docs/api/"/>
|
|
<property name="collections.javadoc" value="http://commons.apache.org/collections/api-release/"/>
|
|
|
|
<!-- ========== 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}"/>
|
|
<pathelement location="${easymock.jar}"/>
|
|
<pathelement location="${commons-io.jar}"/>
|
|
<pathelement location="${hamcrest.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}"/>
|
|
<mkdir dir="${build.home}"/>
|
|
</target>
|
|
|
|
<!-- ========== Compile Targets ========================================= -->
|
|
<target name="compile" depends="init" description="Compile shareable components">
|
|
<mkdir dir="${build.home}/classes"/>
|
|
<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}" includeantruntime="false" encoding="${compile.encoding}">
|
|
<classpath refid="compile.classpath"/>
|
|
</javac>
|
|
<copy todir="${build.home}/classes" filtering="on">
|
|
<fileset dir="${source.home}" excludes="**/*.java,**/*.html"/>
|
|
</copy>
|
|
</target>
|
|
|
|
<target name="compile.tests" depends="compile" description="Compile unit test cases">
|
|
<mkdir dir="${build.home}/tests"/>
|
|
<javac srcdir="${test.home}" destdir="${build.home}/tests" debug="${compile.debug}" deprecation="off" target="${compile.target}" source="${compile.source}" optimize="${compile.optimize}" includeantruntime="false" encoding="${compile.encoding}">
|
|
<classpath refid="test.classpath"/>
|
|
</javac>
|
|
<copy todir="${build.home}/tests" filtering="on">
|
|
<fileset dir="${test.home}" excludes="**/*.java"/>
|
|
</copy>
|
|
</target>
|
|
|
|
<!-- ========== Unit Tests ========================================= -->
|
|
<target name="test" depends="compile.tests" description="Run all unit test cases">
|
|
<echo message="Running unit tests ..."/>
|
|
<mkdir dir="${build.home}/test-reports"/>
|
|
<junit printsummary="true" showoutput="true" fork="yes" haltonfailure="${test.failonerror}">
|
|
<classpath refid="test.classpath"/>
|
|
<formatter type="plain" usefile="true" />
|
|
<!-- If test.entry is defined, run a single test, otherwise run all valid tests -->
|
|
<test name="${test.entry}" todir="${build.home}/test-reports" if="test.entry"/>
|
|
<batchtest fork="yes" todir="${build.home}/test-reports" unless="test.entry">
|
|
<fileset dir="${test.home}">
|
|
<include name="**/*Test.java"/>
|
|
<exclude name="**/Abstract*Test.java"/>
|
|
</fileset>
|
|
</batchtest>
|
|
</junit>
|
|
</target>
|
|
|
|
<target name="clean" description="Clean build and distribution directories">
|
|
<delete dir="${build.home}"/>
|
|
</target>
|
|
|
|
<target name="all" depends="clean,test,compile" description="Clean and compile all components"/>
|
|
|
|
<!-- ========== JavaDocs ========================================= -->
|
|
<target name="javadoc" depends="compile" description="Create component Javadoc documentation">
|
|
<mkdir dir="${build.home}"/>
|
|
<mkdir dir="${build.home}/apidocs"/>
|
|
<tstamp>
|
|
<format property="current.year" pattern="yyyy"/>
|
|
</tstamp>
|
|
<javadoc sourcepath="${source.home}"
|
|
destdir="${build.home}/apidocs"
|
|
overview="${source.home}/org/apache/commons/lang3/overview.html"
|
|
packagenames="org.apache.commons.*"
|
|
excludepackagenames="${javadoc.excludepackagenames}"
|
|
author="false"
|
|
version="true"
|
|
doctitle="<h1>Commons Lang ${component.version}</h1>"
|
|
windowtitle="Lang ${component.version}"
|
|
bottom="Copyright &copy; 2001-${current.year} - Apache Software Foundation"
|
|
use="true"
|
|
encoding="${compile.encoding}"
|
|
source="${compile.source}">
|
|
</javadoc>
|
|
</target>
|
|
|
|
<!-- ========== Jar Targets ========================================= -->
|
|
<target name="jar" depends="compile" description="Create jar">
|
|
<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="${build.home}/${final.name}.jar">
|
|
<manifest>
|
|
<attribute name="Automatic-Module-Name" value="org.apache.commons.lang3"/>
|
|
<attribute name="Bundle-Description" value="Apache Commons Lang, a package of Java utility classes for the classes that are in java.lang's hierarchy, or are considered to be so standard as to justify existence in java.lang."/>
|
|
<attribute name="Bundle-DocURL" value="http://commons.apache.org/proper/commons-lang/"/>
|
|
<attribute name="Bundle-License" value="https://www.apache.org/licenses/LICENSE-2.0.txt"/>
|
|
<attribute name="Bundle-ManifestVersion" value="2"/>
|
|
<attribute name="Bundle-Name" value="Apache Commons Lang"/>
|
|
<attribute name="Bundle-SymbolicName" value="org.apache.commons.lang3"/>
|
|
<attribute name="Bundle-Vendor" value="The Apache Software Foundation"/>
|
|
<attribute name="Bundle-Version" value="${component.version}"/>
|
|
<attribute name="Export-Package" value="org.apache.commons.lang3;version="${component.version}",org.apache.commons.lang3.arch;version="${component.version}",org.apache.commons.lang3.builder;version="${component.version}",org.apache.commons.lang3.concurrent;version="${component.version}",org.apache.commons.lang3.event;version="${component.version}",org.apache.commons.lang3.exception;version="${component.version}",org.apache.commons.lang3.math;version="${component.version}",org.apache.commons.lang3.mutable;version="${component.version}",org.apache.commons.lang3.reflect;version="${component.version}",org.apache.commons.lang3.text;version="${component.version}",org.apache.commons.lang3.text.translate;version="${component.version}",org.apache.commons.lang3.time;version="${component.version}",org.apache.commons.lang3.tuple;version="${component.version}""/>
|
|
<attribute name="Implementation-Title" value="Commons Lang"/>
|
|
<attribute name="Implementation-Version" value="${component.version}"/>
|
|
<attribute name="Implementation-Vendor" value="The Apache Software Foundation"/>
|
|
<attribute name="Implementation-Vendor-Id" value="org.apache"/>
|
|
<attribute name="Include-Resource" value="META-INF/LICENSE.txt=LICENSE.txt,META-INF/NOTICE.txt=NOTICE.txt"/>
|
|
<attribute name="Require-Capability" value="osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=${compile.target}))""/>
|
|
<attribute name="Specification-Title" value="Commons Lang"/>
|
|
<attribute name="Specification-Version" value="${component.version}"/>
|
|
<attribute name="Specification-Vendor" value="The Apache Software Foundation"/>
|
|
<attribute name="X-Compile-Source-JDK" value="${compile.source}"/>
|
|
<attribute name="X-Compile-Target-JDK" value="${compile.target}"/>
|
|
</manifest>
|
|
<fileset dir="${build.home}/classes">
|
|
<include name="**/*.class"/>
|
|
<include name="**/LICENSE.txt"/>
|
|
<include name="**/NOTICE.txt"/>
|
|
</fileset>
|
|
</jar>
|
|
</target>
|
|
|
|
<target name="javadoc-jar" depends="javadoc" description="Create JavaDoc jar">
|
|
<jar jarfile="${build.home}/${final.name}-javadoc.jar">
|
|
<manifest>
|
|
<attribute name="Specification-Title" value="Commons Lang API"/>
|
|
<attribute name="Specification-Version" value="${component.version}"/>
|
|
<attribute name="Specification-Vendor" value="The Apache Software Foundation"/>
|
|
<attribute name="Implementation-Title" value="Commons Lang API"/>
|
|
<attribute name="Implementation-Version" value="${component.version}"/>
|
|
<attribute name="Implementation-Vendor" value="The Apache Software Foundation"/>
|
|
<attribute name="Implementation-Vendor-Id" value="org.apache"/>
|
|
</manifest>
|
|
<fileset dir="${build.home}/apidocs"/>
|
|
<fileset dir="${basedir}">
|
|
<include name="LICENSE.txt"/>
|
|
<include name="NOTICE.txt"/>
|
|
</fileset>
|
|
</jar>
|
|
</target>
|
|
|
|
<target name="source-jar" depends="init" description="Create JavaDoc jar">
|
|
<jar jarfile="${build.home}/${final.name}-sources.jar">
|
|
<manifest>
|
|
<attribute name="Specification-Title" value="Commons Lang Source"/>
|
|
<attribute name="Specification-Version" value="${component.version}"/>
|
|
<attribute name="Specification-Vendor" value="The Apache Software Foundation"/>
|
|
<attribute name="Implementation-Title" value="Commons Lang Source"/>
|
|
<attribute name="Implementation-Version" value="${component.version}"/>
|
|
<attribute name="Implementation-Vendor" value="The Apache Software Foundation"/>
|
|
<attribute name="Implementation-Vendor-Id" value="org.apache"/>
|
|
</manifest>
|
|
<fileset dir="${source.home}">
|
|
<include name="**/*.java"/>
|
|
</fileset>
|
|
<fileset dir="${basedir}">
|
|
<include name="LICENSE.txt"/>
|
|
<include name="NOTICE.txt"/>
|
|
</fileset>
|
|
</jar>
|
|
</target>
|
|
|
|
<!-- ========== Distribution ========================================= -->
|
|
<target name="dist" depends="clean,jar,source-jar,javadoc-jar" description="Create binary distribution">
|
|
|
|
<!-- binary distro -->
|
|
<zip destfile="${build.home}/${final.name}.zip">
|
|
<zipfileset dir="${basedir}" prefix="${final.name}"
|
|
includes="LICENSE.txt,
|
|
NOTICE.txt,
|
|
RELEASE-NOTES.txt"
|
|
/>
|
|
<zipfileset dir="${build.home}" includes="*.jar," prefix="${final.name}"/>
|
|
<zipfileset dir="${build.home}/apidocs" prefix="${final.name}/apidocs"/>
|
|
</zip>
|
|
<tar destfile="${build.home}/${final.name}.tar.gz" compression="gzip">
|
|
<zipfileset src="${build.home}/${final.name}.zip"/>
|
|
</tar>
|
|
|
|
<!-- source distro -->
|
|
<zip destfile="${build.home}/${final.name}-src.zip">
|
|
<zipfileset dir="${basedir}" prefix="${final.name}-src"
|
|
includes="build.xml,
|
|
build.xml,
|
|
checkstyle.xml,
|
|
default.properties,
|
|
LICENSE.txt,
|
|
NOTICE.txt,
|
|
pom.xml,
|
|
RELEASE-NOTES.txt"
|
|
/>
|
|
<zipfileset dir="${basedir}/src" prefix="${final.name}-src/src"/>
|
|
</zip>
|
|
<tar destfile="${build.home}/${final.name}-src.tar.gz" compression="gzip">
|
|
<zipfileset src="${build.home}/${final.name}-src.zip"/>
|
|
</tar>
|
|
|
|
</target>
|
|
</project>
|