| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| 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. |
| --> |
| <project name="exec" default="jar" basedir="."> |
| |
| <property file="build.properties" /> |
| <property name="maven.build.version" value="1.0-SNAPSHOT"/> |
| <property name="maven.build.output" value="target/classes"/> |
| <property name="maven.build.directory" value="target"/> |
| <property name="maven.build.final.name" value="exec-${maven.build.version}"/> |
| <property name="maven.test.reports" value="${maven.build.directory}/test-reports"/> |
| <property name="maven.test.output" value="target/test-classes"/> |
| <property name="maven.repo.local" value="${user.home}/.m2/repository"/> |
| |
| <path id="build.classpath"> |
| <!-- assume that we pick up the junit stuff from the repo - won't work on all boxes --> |
| <fileset dir="${maven.repo.local}/junit/junit/3.8.1"> |
| <include name="junit-3.8.1.jar"/> |
| </fileset> |
| </path> |
| |
| <target name="clean" description="Clean the output directory"> |
| <delete dir="${maven.build.directory}"/> |
| </target> |
| |
| <target name="compile" description="Compile the code"> |
| <mkdir dir="${maven.build.output}"/> |
| <javac destdir="${maven.build.output}" excludes="**/package.html" debug="true" deprecation="true" optimize="false" target="1.3"> |
| <src> |
| <pathelement location="${basedir}/src/main/java"/> |
| </src> |
| <classpath refid="build.classpath"/> |
| </javac> |
| </target> |
| |
| <target name="jar" depends="compile,test" description="Build the JAR"> |
| <jar jarfile="${maven.build.directory}/${maven.build.final.name}.jar" basedir="${maven.build.output}" excludes="**/package.html"/> |
| </target> |
| |
| <target name="compile-tests" depends="junit-present, compile" description="Compile the test code" if="junit.present"> |
| <mkdir dir="${maven.test.output}"/> |
| <javac destdir="${maven.test.output}" excludes="**/package.html" debug="true" deprecation="true" optimize="false" target="1.3"> |
| <src> |
| <pathelement location="${basedir}/src/test/java"/> |
| </src> |
| <classpath> |
| <path refid="build.classpath"/> |
| <pathelement location="${maven.build.output}"/> |
| </classpath> |
| </javac> |
| </target> |
| |
| <target name="test" depends="junit-present, compile-tests" if="junit.present" description="Run the test cases"> |
| <mkdir dir="${maven.test.reports}"/> |
| <junit printSummary="yes" haltonerror="true" haltonfailure="true" fork="true" dir="."> |
| <sysproperty key="basedir" value="."/> |
| <sysproperty key="COMMONS_EXEC_DEBUG" value="true"/> |
| <sysproperty key="COMMONS_EXEC_LENIENT" value="false"/> |
| <formatter type="xml"/> |
| <formatter type="plain" usefile="false"/> |
| <classpath> |
| <path refid="build.classpath"/> |
| <pathelement location="${maven.build.output}"/> |
| <pathelement location="${maven.test.output}"/> |
| </classpath> |
| <batchtest todir="${maven.test.reports}"> |
| <fileset dir="${basedir}/src/test/java"> |
| <include name="**/*Test.java"/> |
| <exclude name="**/*Abstract*Test.java"/> |
| </fileset> |
| </batchtest> |
| </junit> |
| </target> |
| |
| <target name="test-junit-present"> |
| <available classname="junit.framework.Test" property="junit.present"/> |
| </target> |
| |
| <target name="junit-present" depends="test-junit-present" unless="junit.present"> |
| <echo>================================= WARNING ================================</echo> |
| <echo> JUnit isn't present in your classpath. Tests not executed. </echo> |
| <echo>==========================================================================</echo> |
| </target> |
| |
| <!-- Starts preparing a test distribution --> |
| <target name="test-distribution-prepare" depends="clean, compile, junit-present, compile-tests"> |
| <mkdir dir="${maven.build.directory}/dist/lib"/> |
| <!-- create the libraries --> |
| <copy file="${maven.repo.local}/junit/junit/3.8.1/junit-3.8.1.jar" todir="${maven.build.directory}/dist/lib"/> |
| <jar jarfile="${maven.build.directory}/dist/lib/exec-test-${maven.build.version}.jar" basedir="${maven.test.output}" excludes="**/package.html"/> |
| <jar jarfile="${maven.build.directory}/dist/lib/${maven.build.final.name}.jar" basedir="${maven.build.output}" excludes="**/package.html"/> |
| <!-- copy the scripts --> |
| <copy todir="${maven.build.directory}/dist"> |
| <fileset dir="${basedir}/src/test/bin"/> |
| </copy> |
| <copy todir="${maven.build.directory}/dist/src/test/scripts"> |
| <fileset dir="${basedir}/src/test/scripts"/> |
| </copy> |
| <!-- make the script files executable --> |
| <chmod dir="${maven.build.directory}/dist" perm="u+x" includes="**/*.sh"/> |
| </target> |
| |
| <!-- Create a zip containing the test environment --> |
| <target name="test-distribution-zip" depends="test-distribution-prepare"> |
| <zip destfile="${maven.build.directory}/exec-test-${maven.build.version}.zip"> |
| <fileset dir="${maven.build.directory}/dist"> |
| <filename name="**/*.*"/> |
| </fileset> |
| </zip> |
| </target> |
| |
| <!-- Create a tar.gz containing the test environment --> |
| <target name="test-distribution-tar" depends="test-distribution-prepare"> |
| <tar tarfile="${maven.build.directory}/dist/exec-test-${maven.build.version}.tar" basedir="${maven.build.directory}/dist"/> |
| <gzip zipfile="${maven.build.directory}/exec-test-${maven.build.version}.tar.gz" src="${maven.build.directory}/dist/exec-test-${maven.build.version}.tar"/> |
| <delete file="${maven.build.directory}/dist/exec-test-${maven.build.version}.tar"/> |
| </target> |
| |
| <target name="test-distribution" depends="test-distribution-zip, test-distribution-tar" description="Creates a test distribution"> |
| </target> |
| |
| </project> |