2018-12-26 07:32:28 +01:00
|
|
|
<project name="junit" default="dist" basedir="."
|
|
|
|
xmlns:artifact="antlib:org.apache.maven.artifact.ant">
|
|
|
|
<tstamp />
|
|
|
|
<taskdef resource="net/sf/antcontrib/antcontrib.properties"/>
|
|
|
|
|
|
|
|
<property file="${user.home}/.junit.properties" />
|
|
|
|
<property name="src" value="src/main/java" />
|
|
|
|
<property name="target" location="target" />
|
|
|
|
<property name="bin" location="${target}/main" />
|
2021-12-12 16:46:24 +01:00
|
|
|
<property name="version-base" value="4.13.2" />
|
|
|
|
<property name="version-bundle" value="${version-base}" />
|
2018-12-26 07:32:28 +01:00
|
|
|
<property name="version-status" value="-SNAPSHOT" />
|
|
|
|
<property name="version" value="${version-base}${version-status}" />
|
|
|
|
<property name="dist" value="junit${version}" />
|
|
|
|
<property name="versionfile" value="${src}/junit/runner/Version.java" />
|
|
|
|
<property name="zipfile" value="${dist}/${dist}.zip" />
|
|
|
|
<property name="testsrc" location="src/test/java" />
|
|
|
|
<property name="testrsrc" location="src/test/resources" />
|
|
|
|
<property name="testbin" location="${target}/test/java" />
|
|
|
|
<property name="unjarred"
|
|
|
|
value="**/*.jar, ${testfiles}, doc/**, README.html, .classpath, .project, cpl-v10.html" />
|
|
|
|
|
|
|
|
<property name="binjar" value="junit-${version}.jar" />
|
|
|
|
<property name="srcjar" value="junit-${version}-src.jar" />
|
|
|
|
<property name="docjar" value="junit-${version}-javadoc.jar" />
|
|
|
|
|
|
|
|
<property name="depjar" value="junit-dep-${version}.jar" />
|
|
|
|
<property name="depsrcjar" value="junit-dep-${version}-src.jar" />
|
|
|
|
<property name="depdocjar" value="junit-dep-${version}-javadoc.jar" />
|
|
|
|
|
|
|
|
<property name="javadocdir" location="${dist}/javadoc" />
|
|
|
|
<property name="javadoczip" location="${dist}-javadoc.zip" />
|
|
|
|
<property name="hamcrestlib" location="lib/hamcrest-core-1.3.jar" />
|
|
|
|
<property name="hamcrestlibsources" location="lib/hamcrest-core-1.3-sources.jar" />
|
|
|
|
<property name="hamcrestsrc" location="${dist}/temp.hamcrest.source" />
|
|
|
|
|
|
|
|
<property name="maven.deploy.goal" value="org.apache.maven.plugins:maven-gpg-plugin:1.1:sign-and-deploy-file" />
|
2019-02-04 18:16:57 +01:00
|
|
|
|
2023-09-21 09:56:25 +02:00
|
|
|
<property name="compiler.release" value="8" />
|
|
|
|
<property name="compiler.source" value="1.${compiler.release}" />
|
2019-02-04 18:16:57 +01:00
|
|
|
<property name="compiler.target" value="${compiler.source}" />
|
2018-12-26 07:32:28 +01:00
|
|
|
|
|
|
|
<target name="init">
|
|
|
|
<tstamp/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="versiontag" depends="init">
|
|
|
|
<filter token="version" value="${version}" />
|
|
|
|
|
|
|
|
<copy
|
|
|
|
file="${versionfile}.template"
|
|
|
|
tofile="${versionfile}"
|
|
|
|
filtering="on"
|
|
|
|
overwrite="true"
|
|
|
|
/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="clean">
|
|
|
|
<!-- If two builds are made within a minute -->
|
|
|
|
<delete dir="${dist}" quiet="true" />
|
|
|
|
<!-- Delete all previous temporary build artifacts -->
|
|
|
|
<delete dir="${target}" quiet="true" />
|
|
|
|
|
|
|
|
<delete file="${zipfile}" quiet="true"/>
|
|
|
|
<delete file="${javadoczip}" />
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<macrodef name="junit_compilation">
|
|
|
|
<attribute name="srcdir"/>
|
|
|
|
<attribute name="destdir"/>
|
|
|
|
<attribute name="classpath"/>
|
|
|
|
<sequential>
|
|
|
|
<mkdir dir="@{destdir}"/>
|
|
|
|
<javac
|
|
|
|
srcdir="@{srcdir}"
|
|
|
|
destdir="@{destdir}"
|
|
|
|
debug="on"
|
|
|
|
classpath="@{classpath}"
|
|
|
|
includeantruntime="false"
|
2023-09-21 09:56:25 +02:00
|
|
|
release="${compiler.release}"
|
2019-02-04 18:16:57 +01:00
|
|
|
source="${compiler.source}"
|
|
|
|
target="${compiler.target}"
|
2018-12-26 07:32:28 +01:00
|
|
|
>
|
|
|
|
<compilerarg value="-Xlint:unchecked" />
|
|
|
|
</javac>
|
|
|
|
</sequential>
|
|
|
|
</macrodef>
|
|
|
|
|
|
|
|
<target name="build" depends="versiontag">
|
|
|
|
<junit_compilation srcdir="${src}" destdir="${bin}" classpath="${hamcrestlib}"/>
|
|
|
|
<unjar src="${hamcrestlib}" dest="${bin}" />
|
|
|
|
<junit_compilation srcdir="${testsrc}" destdir="${testbin}" classpath="${hamcrestlib};${bin}"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="jars" depends="build">
|
|
|
|
<mkdir dir="${dist}" />
|
|
|
|
<jar
|
|
|
|
jarfile="${dist}/${srcjar}"
|
|
|
|
basedir="${src}"
|
|
|
|
excludes="${unjarred}, **/*.class"
|
|
|
|
/>
|
|
|
|
<jar
|
|
|
|
jarfile="${dist}/${binjar}"
|
|
|
|
basedir="${bin}"
|
2019-02-04 18:16:57 +01:00
|
|
|
excludes="${unjarred}, **/*.java, build.xml">
|
|
|
|
<manifest>
|
2024-04-24 18:47:49 +02:00
|
|
|
<attribute name="Automatic-Module-Name" value="junit"/>
|
2019-02-04 18:16:57 +01:00
|
|
|
<attribute name="Bundle-Description" value="JUnit is a unit testing framework for Java, created by Erich Gamma and Kent Beck."/>
|
|
|
|
<attribute name="Bundle-DocURL" value="http://www.junit.org"/>
|
|
|
|
<attribute name="Bundle-License" value="http://www.eclipse.org/legal/epl-v10.html"/>
|
|
|
|
<attribute name="Bundle-ManifestVersion" value="2"/>
|
|
|
|
<attribute name="Bundle-Name" value="JUnit"/>
|
|
|
|
<attribute name="Bundle-SymbolicName" value="org.junit"/>
|
|
|
|
<attribute name="Bundle-Vendor" value="JUnit"/>
|
|
|
|
<attribute name="Bundle-Version" value="${version-bundle}"/>
|
2022-06-10 08:08:23 +02:00
|
|
|
<attribute name="Export-Package" value="junit.extensions;version="${version-bundle}",junit.framework;version="${version-bundle}",junit.runner;version="${version-bundle}",junit.textui;version="${version-bundle}",org.junit.experimental.categories;version="${version-bundle}",org.junit.experimental.max;version="${version-bundle}",org.junit.experimental.results;version="${version-bundle}",org.junit.experimental.runners;version="${version-bundle}",org.junit.experimental.theories.internal;x-internal:=true;version="${version-bundle}",org.junit.experimental.theories.suppliers;version="${version-bundle}",org.junit.experimental.theories;version="${version-bundle}",org.junit.experimental;version="${version-bundle}",org.junit.function;version="${version-bundle}",org.junit.internal.builders;x-internal:=true;version="${version-bundle}",org.junit.internal.management;x-internal:=true;version="${version-bundle}",org.junit.internal.matchers;x-internal:=true;version="${version-bundle}",org.junit.internal.requests;x-internal:=true;version="${version-bundle}",org.junit.internal.runners.model;x-internal:=true;version="${version-bundle}",org.junit.internal.runners.rules;x-internal:=true;version="${version-bundle}",org.junit.internal.runners.statements;x-internal:=true;version="${version-bundle}",org.junit.internal.runners;x-internal:=true;version="${version-bundle}",org.junit.internal;x-internal:=true;version="${version-bundle}",org.junit.matchers;version="${version-bundle}",org.junit.rules;version="${version-bundle}",org.junit.runner.manipulation;version="${version-bundle}",org.junit.runner.notification;version="${version-bundle}",org.junit.runner;version="${version-bundle}",org.junit.runners.model;version="${version-bundle}",org.junit.runners.parameterized;version="${version-bundle}",org.junit.runners;version="${version-bundle}",org.junit.validator;version="${version-bundle}",org.junit;version="${version-bundle}""/>
|
2019-02-04 18:16:57 +01:00
|
|
|
<attribute name="Implementation-Title" value="JUnit"/>
|
|
|
|
<attribute name="Implementation-URL" value="http://junit.org"/>
|
|
|
|
<attribute name="Implementation-Vendor" value="JUnit"/>
|
|
|
|
<attribute name="Implementation-Vendor-Id" value="junit"/>
|
|
|
|
<attribute name="Implementation-Version" value="${version-base}"/>
|
2022-06-10 08:08:23 +02:00
|
|
|
<attribute name="Import-Package" value="junit.extensions,junit.framework,junit.runner,org.hamcrest.core,org.hamcrest,org.junit,org.junit.experimental.theories,org.junit.experimental.theories.internal,org.junit.function,org.junit.internal,org.junit.internal.builders,org.junit.internal.management,org.junit.internal.matchers,org.junit.internal.requests,org.junit.internal.runners,org.junit.internal.runners.model,org.junit.internal.runners.rules,org.junit.internal.runners.statements,org.junit.matchers,org.junit.rules,org.junit.runner,org.junit.runner.manipulation,org.junit.runner.notification,org.junit.runners,org.junit.runners.model,org.junit.runners.parameterized,org.junit.validator"/>
|
2019-02-04 18:16:57 +01:00
|
|
|
<attribute name="JavaPackages-ArtifactId" value="junit"/>
|
|
|
|
<attribute name="JavaPackages-GroupId" value="junit"/>
|
|
|
|
<attribute name="JavaPackages-Version" value="${version-base}"/>
|
|
|
|
<attribute name="Require-Capability" value="osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=${compiler.target}))""/>
|
|
|
|
</manifest>
|
|
|
|
</jar>
|
2018-12-26 07:32:28 +01:00
|
|
|
<jar
|
|
|
|
jarfile="${dist}/${depjar}"
|
|
|
|
basedir="${bin}"
|
|
|
|
excludes="${unjarred}, org/hamcrest/**, **/*.java, build.xml"
|
|
|
|
/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="all.maven.jars" depends="jars,javadoc">
|
|
|
|
<mkdir dir="${dist}" />
|
|
|
|
<jar
|
|
|
|
jarfile="${dist}/${depsrcjar}"
|
|
|
|
basedir="${src}"
|
|
|
|
excludes="${unjarred}, **/*.class"
|
|
|
|
/>
|
|
|
|
<jar
|
|
|
|
jarfile="${dist}/${depdocjar}"
|
|
|
|
basedir="${javadocdir}"
|
|
|
|
excludes="${unjarred}, org/hamcrest/**"
|
|
|
|
/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="samples-and-tests">
|
|
|
|
<copy todir="${dist}">
|
|
|
|
<fileset dir="${testbin}" />
|
|
|
|
<fileset dir="${testsrc}" />
|
2022-06-10 12:51:04 +02:00
|
|
|
<fileset dir="${testrsrc}" />
|
2018-12-26 07:32:28 +01:00
|
|
|
</copy>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="javadoc">
|
|
|
|
<javadoc destdir="${javadocdir}"
|
2019-02-04 18:16:57 +01:00
|
|
|
source="${compiler.source}"
|
2018-12-26 07:32:28 +01:00
|
|
|
author="false"
|
|
|
|
version="false"
|
|
|
|
use="false"
|
|
|
|
windowtitle="JUnit API"
|
|
|
|
>
|
|
|
|
<excludepackage name="junit.*" />
|
|
|
|
<excludepackage name="org.junit.internal.*" />
|
|
|
|
<excludepackage name="org.junit.experimental.theories.internal.*" />
|
|
|
|
|
|
|
|
<sourcepath location="${src}" />
|
|
|
|
<sourcepath location="${hamcrestsrc}" />
|
|
|
|
</javadoc>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="javadoczip">
|
|
|
|
<delete file="${javadoczip}" />
|
|
|
|
<antcall target="javadoc" />
|
|
|
|
<zip basedir="${javadocdir}" file="${javadoczip}" />
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="populate-dist"
|
|
|
|
depends="clean, build, jars, samples-and-tests, javadoc"
|
|
|
|
>
|
|
|
|
<copy todir="${dist}/doc">
|
|
|
|
<fileset dir="doc"/>
|
|
|
|
</copy>
|
|
|
|
<copy file="README.md" tofile="${dist}/README.md" />
|
|
|
|
<copy file="BUILDING" tofile="${dist}/BUILDING" />
|
|
|
|
<copy file="epl-v10.html" tofile="${dist}/epl-v10.html" />
|
|
|
|
<copy file="build.xml" tofile="${dist}/build.xml" />
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<macrodef name="run-dist-tests">
|
|
|
|
<!-- Runs the tests against the built jar files -->
|
|
|
|
<element name="extra-args" implicit="yes" />
|
|
|
|
<sequential>
|
|
|
|
<java classname="org.junit.runner.JUnitCore" fork="yes" failonerror="true">
|
|
|
|
<extra-args />
|
|
|
|
<arg value="org.junit.tests.AllTests"/>
|
|
|
|
<classpath>
|
|
|
|
<pathelement location="${dist}" />
|
|
|
|
<pathelement location="${dist}/${binjar}" />
|
|
|
|
</classpath>
|
|
|
|
</java>
|
|
|
|
</sequential>
|
|
|
|
</macrodef>
|
|
|
|
|
|
|
|
<macrodef name="run-local-tests">
|
|
|
|
<!-- Runs the tests against the local class files -->
|
|
|
|
<sequential>
|
|
|
|
<java classname="org.junit.runner.JUnitCore" fork="yes" failonerror="true">
|
|
|
|
<arg value="org.junit.tests.AllTests"/>
|
|
|
|
<classpath>
|
|
|
|
<pathelement location="${bin}" />
|
|
|
|
<pathelement location="${testbin}" />
|
|
|
|
<pathelement location="${hamcrestlib}" />
|
|
|
|
</classpath>
|
|
|
|
</java>
|
|
|
|
</sequential>
|
|
|
|
</macrodef>
|
|
|
|
|
|
|
|
<target name="test" depends="build">
|
|
|
|
<run-local-tests />
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="dist" depends="populate-dist">
|
|
|
|
<run-dist-tests>
|
|
|
|
<jvmarg value="-Dignore.this=ignored"/>
|
|
|
|
</run-dist-tests>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="profile" depends="populate-dist">
|
|
|
|
<run-dist-tests>
|
|
|
|
<jvmarg value="-agentlib:hprof=cpu=samples"/>
|
|
|
|
</run-dist-tests>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="zip" depends="dist">
|
|
|
|
<zip zipfile="${zipfile}" basedir="." includes="${dist}/**" />
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="upload.to.sourceforge" depends="zip">
|
|
|
|
<ftp server="upload.sourceforge.net"
|
|
|
|
userid="anonymous"
|
|
|
|
password="saff@mit.edu"
|
|
|
|
remotedir="incoming"
|
|
|
|
>
|
|
|
|
<fileset dir="${dist}" includes="*.jar" />
|
|
|
|
<fileset file="${zipfile}" />
|
|
|
|
</ftp>
|
|
|
|
<echo message="To upload docs, use build/upload_docs.sh" />
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<!-- to do automatic build upload, you need the maven ant tasks jar. -->
|
|
|
|
<!-- therefore, you must run ant as ant -lib build/lib stage.maven -->
|
|
|
|
<macrodef name="push.maven.artifact">
|
|
|
|
<attribute name="file" />
|
|
|
|
<attribute name="pom" />
|
|
|
|
<attribute name="packaging" />
|
|
|
|
<attribute name="url" />
|
|
|
|
<attribute name="repo.id" />
|
|
|
|
<element name="artifact.args" implicit="true" optional="true" />
|
|
|
|
<sequential>
|
|
|
|
<artifact:mvn failonerror="true">
|
|
|
|
<arg value="${maven.deploy.goal}" />
|
|
|
|
<arg value="-Durl=@{url}" />
|
|
|
|
<arg value="-DrepositoryId=@{repo.id}" />
|
|
|
|
<arg value="-DpomFile=@{pom}" />
|
|
|
|
<arg value="-Dfile=@{file}" />
|
|
|
|
<arg value="-Dpackaging=@{packaging}" />
|
|
|
|
<artifact.args />
|
|
|
|
<arg value="-Pgpg" />
|
|
|
|
</artifact:mvn>
|
|
|
|
</sequential>
|
|
|
|
</macrodef>
|
|
|
|
|
|
|
|
<macrodef name="push.maven.jar">
|
|
|
|
<attribute name="jar" />
|
|
|
|
<attribute name="pom" />
|
|
|
|
<attribute name="url" />
|
|
|
|
<attribute name="repo.id" />
|
|
|
|
<element name="artifact.args" implicit="true" optional="true" />
|
|
|
|
<sequential>
|
|
|
|
<echo message="Pushing JAR to Maven: @{jar} -> @{url}" />
|
|
|
|
<push.maven.artifact file="@{jar}" pom="@{pom}" packaging="jar"
|
|
|
|
url="@{url}" repo.id="@{repo.id}">
|
|
|
|
<artifact.args />
|
|
|
|
</push.maven.artifact>
|
|
|
|
</sequential>
|
|
|
|
</macrodef>
|
|
|
|
|
|
|
|
<macrodef name="push.maven.pom">
|
|
|
|
<attribute name="pom" />
|
|
|
|
<attribute name="url" />
|
|
|
|
<attribute name="repo.id" />
|
|
|
|
<element name="artifact.args" implicit="true" optional="true" />
|
|
|
|
<sequential>
|
|
|
|
<echo message="Pushing POM to Maven: @{pom} -> @{url}" />
|
|
|
|
<push.maven.artifact file="@{pom}" pom="@{pom}" packaging="pom"
|
|
|
|
url="@{url}" repo.id="@{repo.id}">
|
|
|
|
<artifact.args />
|
|
|
|
</push.maven.artifact>
|
|
|
|
</sequential>
|
|
|
|
</macrodef>
|
|
|
|
|
|
|
|
<macrodef name="push.junit.maven.artifact">
|
|
|
|
<attribute name="url" />
|
|
|
|
<attribute name="repo.id" />
|
|
|
|
<attribute name="is.snapshot" default="true" />
|
|
|
|
<sequential>
|
|
|
|
<local name="m.prefix" />
|
|
|
|
<property name="m.prefix" value="${dist}/junit-dep-${version}" />
|
|
|
|
<local name="m.jar" />
|
|
|
|
<property name="m.jar" value="${m.prefix}.jar" />
|
|
|
|
<local name="m.sources.jar" />
|
|
|
|
<property name="m.sources.jar" value="${m.prefix}-src.jar" />
|
|
|
|
<local name="m.javadoc.jar" />
|
|
|
|
<property name="m.javadoc.jar" value="${m.prefix}-javadoc.jar" />
|
|
|
|
<local name="m.pom" />
|
|
|
|
<property name="m.pom" value="${dist}/pom-junit.xml" />
|
|
|
|
|
|
|
|
<filter token="version" value="${version}" />
|
|
|
|
<copy
|
|
|
|
file="build/maven/junit-pom-template.xml"
|
|
|
|
tofile="${m.pom}"
|
|
|
|
filtering="on"
|
|
|
|
overwrite="true"
|
|
|
|
/>
|
|
|
|
|
|
|
|
<push.maven.jar jar="${m.jar}" pom="${m.pom}"
|
|
|
|
url="@{url}" repo.id="@{repo.id}" />
|
|
|
|
|
|
|
|
<if>
|
|
|
|
<equals arg1="@{is.snapshot}" arg2="false" />
|
|
|
|
<then>
|
|
|
|
<push.maven.jar jar="${m.sources.jar}" pom="${m.pom}"
|
|
|
|
url="@{url}" repo.id="@{repo.id}">
|
|
|
|
<arg value="-Dclassifier=sources" />
|
|
|
|
</push.maven.jar>
|
|
|
|
<push.maven.jar jar="${m.javadoc.jar}" pom="${m.pom}"
|
|
|
|
url="@{url}" repo.id="@{repo.id}">
|
|
|
|
<arg value="-Dclassifier=javadoc" />
|
|
|
|
</push.maven.jar>
|
|
|
|
</then>
|
|
|
|
</if>
|
|
|
|
</sequential>
|
|
|
|
</macrodef>
|
|
|
|
|
|
|
|
<macrodef name="push.junit-dep.maven.artifact">
|
|
|
|
<attribute name="url" />
|
|
|
|
<attribute name="repo.id" />
|
|
|
|
<sequential>
|
|
|
|
<local name="m.pom" />
|
|
|
|
<property name="m.pom" value="${dist}/pom-junit-dep.xml" />
|
|
|
|
|
|
|
|
<filter token="version" value="${version}" />
|
|
|
|
<copy
|
|
|
|
file="build/maven/junit-dep-pom-template.xml"
|
|
|
|
tofile="${m.pom}"
|
|
|
|
filtering="on"
|
|
|
|
overwrite="true"
|
|
|
|
/>
|
|
|
|
|
|
|
|
<push.maven.pom pom="${m.pom}"
|
|
|
|
url="@{url}" repo.id="@{repo.id}" />
|
|
|
|
</sequential>
|
|
|
|
</macrodef>
|
|
|
|
|
|
|
|
<target name="stage.maven" depends="all.maven.jars">
|
|
|
|
<property name="stage.url"
|
|
|
|
value="https://oss.sonatype.org/service/local/staging/deploy/maven2/" />
|
|
|
|
<property name="stage.repo.id" value="sonatype-nexus-staging" />
|
|
|
|
|
|
|
|
<push.junit.maven.artifact url="${stage.url}"
|
|
|
|
repo.id="${stage.repo.id}"
|
|
|
|
is.snapshot="false" />
|
|
|
|
<push.junit-dep.maven.artifact url="${stage.url}"
|
|
|
|
repo.id="${stage.repo.id}" />
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="snapshot.maven" depends="all.maven.jars">
|
|
|
|
<property name="snapshot.url"
|
|
|
|
value="https://oss.sonatype.org/content/repositories/snapshots/" />
|
|
|
|
<property name="snapshot.repo.id" value="sonatype-nexus-snapshots" />
|
|
|
|
|
|
|
|
<push.junit.maven.artifact url="${snapshot.url}"
|
|
|
|
repo.id="${snapshot.repo.id}" />
|
|
|
|
<push.junit-dep.maven.artifact url="${snapshot.url}"
|
|
|
|
repo.id="${snapshot.repo.id}" />
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="print.version">
|
|
|
|
<echo message="${version}" />
|
|
|
|
</target>
|
|
|
|
</project>
|