| <?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="."> |
| |
| <!-- include optional user-defined properties --> |
| <property file="user.properties" /> |
| |
| <property file="build.properties" /> |
| <property name="maven.build.version" value="1.4"/> |
| <property name="maven.build.output" value="target/classes"/> |
| <property name="maven.build.directory" value="target"/> |
| <property name="maven.build.final.name" value="commons-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"/> |
| <!-- JUnit version should agree with the version in pom.xml --> |
| <property name="maven.junit.jar" value="${maven.repo.local}/junit/junit/4.11/junit-4.11.jar"/> |
| <!-- These must agree with the versions in pom.xml --> |
| <property name="maven.compiler.source" value="1.5"/> |
| <property name="maven.compiler.target" value="1.5"/> |
| |
| <path id="junit"> |
| <pathelement location="${maven.junit.jar}"/> |
| </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" |
| includeAntRuntime="false" |
| source="${maven.compiler.source}" target="${maven.compiler.target}"> |
| <src> |
| <pathelement location="${basedir}/src/main/java"/> |
| </src> |
| </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" |
| includeAntRuntime="false" |
| source="${maven.compiler.source}" target="${maven.compiler.target}"> |
| <src> |
| <pathelement location="${basedir}/src/test/java"/> |
| </src> |
| <classpath> |
| <pathelement location="${maven.build.output}"/> |
| <path refid="junit"/> |
| </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"/> |
| <!-- 2008-12-30 fix sgoeschl using xml formatter breaks junit on JDK 1.3.1 --> |
| <!-- <formatter type="xml"/> --> |
| <formatter type="plain" usefile="false"/> |
| <classpath> |
| <pathelement location="${maven.build.output}"/> |
| <pathelement location="${maven.test.output}"/> |
| <path refid="junit"/> |
| </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" classpathref="junit"/> |
| </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, compile-tests" if="junit.present"> |
| <mkdir dir="${maven.build.directory}/dist/lib"/> |
| <!-- create the libraries --> |
| <copy file="${maven.junit.jar}" todir="${maven.build.directory}/dist/lib"/> |
| <jar jarfile="${maven.build.directory}/dist/lib/commons-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"/> |
| <filterset> |
| <filter token="VERSION" value="${maven.build.version}"/> |
| </filterset> |
| </copy> |
| <copy todir="${maven.build.directory}/dist/src/test/scripts"> |
| <fileset dir="${basedir}/src/test/scripts"/> |
| </copy> |
| <!-- make the shell script files readable/executable --> |
| <chmod dir="${maven.build.directory}/dist" perm="ugo+rx" includes="**/*.sh"/> |
| <!-- copy the various legal files --> |
| <copy file="${basedir}/NOTICE.txt" tofile="${maven.build.directory}/dist/NOTICE.txt"/> |
| <copy file="${basedir}/LICENSE.txt" tofile="${maven.build.directory}/dist/LICENSE.txt"/> |
| </target> |
| |
| <!-- Create a zip containing the test environment --> |
| <target name="test-distribution-zip" depends="test-distribution-prepare" if="junit.present"> |
| <zip destfile="${maven.build.directory}/commons-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" if="junit.present"> |
| <tar tarfile="${maven.build.directory}/dist/commons-exec-test-${maven.build.version}.tar" basedir="${maven.build.directory}/dist"/> |
| <gzip zipfile="${maven.build.directory}/commons-exec-test-${maven.build.version}.tar.gz" src="${maven.build.directory}/dist/commons-exec-test-${maven.build.version}.tar"/> |
| <delete file="${maven.build.directory}/dist/commons-exec-test-${maven.build.version}.tar"/> |
| </target> |
| |
| <target name="test-distribution" depends="junit-present,test-distribution-zip,test-distribution-tar" description="Creates a test distribution" if="junit.present" > |
| </target> |
| |
| </project> |