mirror of https://github.com/apache/ant-ivy
617 lines
28 KiB
XML
617 lines
28 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.
|
|
-->
|
|
<project name="ivy" default="coverage-report" xmlns:ivy="antlib:org.apache.ivy.ant">
|
|
|
|
<property environment="env" />
|
|
<property file="version.properties" />
|
|
<property file="build.properties" />
|
|
|
|
<property name="final.name" value="ivy.jar" />
|
|
<property name="final.core.name" value="ivy-core.jar" />
|
|
|
|
<target name="init-ivy-user-home" unless="ivy.use.local.home">
|
|
<condition property="ivy.home" value="${env.IVY_HOME}">
|
|
<isset property="env.IVY_HOME" />
|
|
</condition>
|
|
<property name="ivy.home" value="${user.home}/.ivy2" />
|
|
</target>
|
|
|
|
<target name="init-ivy-local-home" if="ivy.use.local.home">
|
|
<property name="ivy.home" value="${basedir}/.ivy2" />
|
|
</target>
|
|
|
|
<target name="init-ivy-home" depends="init-ivy-user-home, init-ivy-local-home" />
|
|
|
|
<target name="init-ivy" depends="compile-bootstrap">
|
|
<taskdef resource="org/apache/ivy/ant/antlib.xml"
|
|
uri="antlib:org.apache.ivy.ant">
|
|
<classpath>
|
|
<pathelement location="${core.classes.build.dir}" />
|
|
<pathelement location="${bootstrap.classes.build.dir}" />
|
|
</classpath>
|
|
</taskdef>
|
|
|
|
<ivy:settings id="ivy.instance" override="true"/>
|
|
</target>
|
|
|
|
<target name="install" depends="init-ivy-home, jar"
|
|
description="build Ivy and install it in Ivy user home for builds using Ivy user home to load Ivy jar">
|
|
<property name="ivy.jar.file" value="${ivy.home}/jars/ivy.jar" />
|
|
<copy file="${artifacts.build.dir}/jars/${final.name}" tofile="${ivy.jar.file}" />
|
|
</target>
|
|
|
|
<target name="install-ant" depends="init-ivy-home, jar"
|
|
description="build Ivy and install it in Ant home lib">
|
|
<copy file="${artifacts.build.dir}/jars/${final.name}" tofile="${env.ANT_HOME}/lib/ivy.jar" />
|
|
</target>
|
|
|
|
<!-- =================================================================
|
|
PREPARATION, CLEANING AND FLAGS TASKS
|
|
================================================================= -->
|
|
<target name="init">
|
|
<path id="lib.classpath">
|
|
<fileset dir="${lib.dir}">
|
|
<include name="*.jar" />
|
|
</fileset>
|
|
</path>
|
|
<path id="build.bootstrap.classpath">
|
|
<pathelement location="${core.classes.build.dir}" />
|
|
</path>
|
|
<path id="build.ant.classpath">
|
|
<pathelement location="${core.classes.build.dir}" />
|
|
<path refid="lib.classpath" />
|
|
</path>
|
|
<path id="build.optional.classpath">
|
|
<path refid="build.ant.classpath" />
|
|
</path>
|
|
<path id="run.classpath">
|
|
<pathelement location="${core.classes.build.dir}" />
|
|
<pathelement location="${ant.classes.build.dir}" />
|
|
<pathelement location="${optional.classes.build.dir}" />
|
|
<path refid="lib.classpath" />
|
|
</path>
|
|
<path id="test.classpath">
|
|
<pathelement location="${coverage.classes.dir}" />
|
|
<fileset dir="${lib.dir}">
|
|
<include name="*.jar" />
|
|
<exclude name="ant.jar" />
|
|
<exclude name="ant-*.jar" />
|
|
</fileset>
|
|
<pathelement location="${core.classes.build.dir}" />
|
|
<pathelement location="${ant.classes.build.dir}" />
|
|
<pathelement location="${optional.classes.build.dir}" />
|
|
<pathelement path="${test.build.dir}" />
|
|
</path>
|
|
</target>
|
|
|
|
<target name="prepare" depends="init">
|
|
<mkdir dir="${classes.build.dir}" />
|
|
<mkdir dir="${core.classes.build.dir}" />
|
|
<mkdir dir="${bootstrap.classes.build.dir}" />
|
|
<mkdir dir="${ant.classes.build.dir}" />
|
|
<mkdir dir="${optional.classes.build.dir}" />
|
|
<mkdir dir="${test.build.dir}" />
|
|
<mkdir dir="${artifacts.build.dir}" />
|
|
<mkdir dir="${test.report.dir}" />
|
|
<mkdir dir="${ivy.report.dir}" />
|
|
</target>
|
|
|
|
<target name="clean">
|
|
<delete dir="${classes.build.dir}" />
|
|
<delete dir="${test.build.dir}" />
|
|
<delete dir="${artifacts.build.dir}" />
|
|
<delete dir="${test.report.dir}" />
|
|
<delete dir="${javadoc.build.dir}" />
|
|
<delete dir="${doc.build.dir}" />
|
|
<delete dir="${build.dir}" />
|
|
</target>
|
|
|
|
<target name="clean-lib">
|
|
<delete dir="${lib.dir}" />
|
|
</target>
|
|
|
|
<target name="clean-ivy-cache" depends="init-ivy-home">
|
|
<delete dir="${ivy.home}/cache" />
|
|
</target>
|
|
|
|
<target name="clean-ivy-home" depends="init-ivy-home">
|
|
<delete dir="${ivy.home}" />
|
|
</target>
|
|
|
|
<target name="clean-examples" description="clean all examples">
|
|
<subant target="clean" failonerror="false">
|
|
<fileset dir="${example.dir}" includes="**/build.xml" />
|
|
</subant>
|
|
</target>
|
|
|
|
<target name="clean-all" depends="clean, clean-lib, clean-examples" />
|
|
|
|
<target name="/noresolve" description="use to skip dependency resolution">
|
|
<property name="no.resolve" value="true" />
|
|
</target>
|
|
|
|
<target name="/notest" description="use to skip tests">
|
|
<property name="skip.test" value="true" />
|
|
</target>
|
|
|
|
<target name="/nojavadoc" description="use to skip javadoc">
|
|
<property name="skip.javadoc" value="true" />
|
|
</target>
|
|
|
|
<target name="/localivy" description="use a local ivy home">
|
|
<property name="ivy.use.local.home" value="true" />
|
|
</target>
|
|
|
|
<target name="/offline" depends="/noresolve" description="use to indicate no internet connection is available">
|
|
<property name="offline" value="true" />
|
|
</target>
|
|
|
|
<target name="default-version">
|
|
<tstamp>
|
|
<format property="pubdate" pattern="yyyyMMddHHmmss" />
|
|
</tstamp>
|
|
<property name="version.prefix" value="${target.ivy.version}-local-" />
|
|
<property name="build.version" value="${version.prefix}${pubdate}" />
|
|
<property name="bundle.version" value="${target.ivy.bundle.version}_${pubdate}" />
|
|
</target>
|
|
|
|
<!-- =================================================================
|
|
DEPENDENCY MNGT, COMPILATION AND JAR
|
|
================================================================= -->
|
|
<target name="resolve" depends="init-ivy" unless="no.resolve">
|
|
<ivy:retrieve conf="default,test" pattern="${lib.dir}/[artifact].[ext]" sync="yes"/>
|
|
</target>
|
|
|
|
<target name="compile-core" depends="prepare">
|
|
<javac srcdir="${src.dir}"
|
|
destdir="${core.classes.build.dir}"
|
|
sourcepath=""
|
|
source="${ivy.minimum.javaversion}"
|
|
target="${ivy.minimum.javaversion}"
|
|
debug="${debug.mode}"
|
|
includeantruntime="no">
|
|
<excludesfile name="ant.patterns" />
|
|
<excludesfile name="optional.patterns" />
|
|
</javac>
|
|
<copy todir="${core.classes.build.dir}" includeEmptyDirs="false">
|
|
<fileset dir="${src.dir}">
|
|
<exclude name="**/*.java" />
|
|
<excludesfile name="ant.patterns" />
|
|
<excludesfile name="optional.patterns" />
|
|
</fileset>
|
|
</copy>
|
|
|
|
<!-- copy settings files for backward compatibility with ivyconf naming -->
|
|
<copy file="${core.classes.build.dir}/org/apache/ivy/core/settings/ivysettings-local.xml"
|
|
tofile="${core.classes.build.dir}/org/apache/ivy/core/settings/ivyconf-local.xml" />
|
|
<copy file="${core.classes.build.dir}/org/apache/ivy/core/settings/ivysettings-default-chain.xml"
|
|
tofile="${core.classes.build.dir}/org/apache/ivy/core/settings/ivyconf-default-chain.xml" />
|
|
<copy file="${core.classes.build.dir}/org/apache/ivy/core/settings/ivysettings-main-chain.xml"
|
|
tofile="${core.classes.build.dir}/org/apache/ivy/core/settings/ivyconf-main-chain.xml" />
|
|
<copy file="${core.classes.build.dir}/org/apache/ivy/core/settings/ivysettings-public.xml"
|
|
tofile="${core.classes.build.dir}/org/apache/ivy/core/settings/ivyconf-public.xml" />
|
|
<copy file="${core.classes.build.dir}/org/apache/ivy/core/settings/ivysettings-shared.xml"
|
|
tofile="${core.classes.build.dir}/org/apache/ivy/core/settings/ivyconf-shared.xml" />
|
|
<copy file="${core.classes.build.dir}/org/apache/ivy/core/settings/ivysettings.xml"
|
|
tofile="${core.classes.build.dir}/org/apache/ivy/core/settings/ivyconf.xml" />
|
|
</target>
|
|
|
|
<!-- Build the Ant tasks with the current Ant runtime -->
|
|
<target name="compile-bootstrap" depends="compile-core">
|
|
<javac srcdir="${src.dir}"
|
|
destdir="${bootstrap.classes.build.dir}"
|
|
sourcepath=""
|
|
classpathref="build.bootstrap.classpath"
|
|
source="${ivy.minimum.javaversion}"
|
|
target="${ivy.minimum.javaversion}"
|
|
debug="${debug.mode}"
|
|
includeantruntime="yes">
|
|
<includesfile name="ant.patterns" />
|
|
</javac>
|
|
<copy todir="${bootstrap.classes.build.dir}" includeEmptyDirs="false">
|
|
<fileset dir="${src.dir}">
|
|
<includesfile name="ant.patterns" />
|
|
<exclude name="**/*.java" />
|
|
</fileset>
|
|
</copy>
|
|
</target>
|
|
|
|
<!-- Build the Ant tasks with the minimal Ant runtime -->
|
|
<target name="compile-ant" depends="compile-core, resolve">
|
|
<javac srcdir="${src.dir}"
|
|
destdir="${ant.classes.build.dir}"
|
|
sourcepath=""
|
|
classpathref="build.ant.classpath"
|
|
source="${ivy.minimum.javaversion}"
|
|
target="${ivy.minimum.javaversion}"
|
|
debug="${debug.mode}"
|
|
includeantruntime="no">
|
|
<includesfile name="ant.patterns" />
|
|
</javac>
|
|
<copy todir="${ant.classes.build.dir}" includeEmptyDirs="false">
|
|
<fileset dir="${src.dir}">
|
|
<includesfile name="ant.patterns" />
|
|
<exclude name="**/*.java" />
|
|
</fileset>
|
|
</copy>
|
|
|
|
<!-- copy antlib for backward compatibility with fr.jayasoft.ivy package -->
|
|
<copy file="${ant.classes.build.dir}/org/apache/ivy/ant/antlib.xml"
|
|
todir="${ant.classes.build.dir}/fr/jayasoft/ivy/ant" />
|
|
</target>
|
|
|
|
<target name="compile-optional" depends="compile-ant, resolve">
|
|
<javac srcdir="${src.dir}"
|
|
destdir="${optional.classes.build.dir}"
|
|
sourcepath=""
|
|
classpathref="build.optional.classpath"
|
|
source="${ivy.minimum.javaversion}"
|
|
target="${ivy.minimum.javaversion}"
|
|
debug="${debug.mode}"
|
|
includeantruntime="no">
|
|
<includesfile name="optional.patterns" />
|
|
<includesfile name="ant.patterns" />
|
|
</javac>
|
|
<copy todir="${core.classes.build.dir}" includeEmptyDirs="false">
|
|
<fileset dir="${src.dir}">
|
|
<includesfile name="optional.patterns" />
|
|
<exclude name="**/*.java" />
|
|
</fileset>
|
|
</copy>
|
|
</target>
|
|
|
|
<!-- =================================================================
|
|
Create the two jar files (Ivy core and Ivy core + Ant tasks)
|
|
================================================================= -->
|
|
<target name="jar" depends="compile-optional, default-version" description="Create Jar files">
|
|
<!-- identify compiled ivy version -->
|
|
<echo message="version=${build.version}${line.separator}" file="${core.classes.build.dir}/module.properties" append="true" />
|
|
<echo message="date=${pubdate}${line.separator}" file="${core.classes.build.dir}/module.properties" append="true" />
|
|
|
|
<mkdir dir="${artifacts.build.dir}/jars/"/>
|
|
|
|
<!--
|
|
there is a default Bundle-Version attribute in the source MANIFEST, used to ease
|
|
development in eclipse.
|
|
We remove this line to make sure we get the Bundle-Version as set in the jar task
|
|
-->
|
|
<copy file="${basedir}/META-INF/MANIFEST.MF" tofile="${artifacts.build.dir}/MANIFEST.MF">
|
|
<filterchain>
|
|
<!-- with Ant 1.7 excluding the line would be:
|
|
<linecontains negate="true">
|
|
<contains value="Bundle-Version"/>
|
|
</linecontains>
|
|
-->
|
|
<linecontainsregexp>
|
|
<regexp pattern="[^B][^u][^n][^d][^l][^e][^\-][^V][^e][^r][^s][^i][^o][^n].*"/>
|
|
</linecontainsregexp>
|
|
</filterchain>
|
|
</copy>
|
|
|
|
<!-- package the two ivy jars -->
|
|
<jar destfile="${artifacts.build.dir}/jars/${final.name}"
|
|
manifest="${artifacts.build.dir}/MANIFEST.MF">
|
|
<metainf dir="${basedir}" includes="LICENSE,NOTICE" />
|
|
<manifest>
|
|
<attribute name="Specification-Title" value="Apache Ivy with Ant tasks" />
|
|
<attribute name="Specification-Version" value="${build.version}" />
|
|
<attribute name="Specification-Vendor" value="Apache Software Foundation" />
|
|
<attribute name="Implementation-Title" value="org.apache.ivy" />
|
|
<attribute name="Implementation-Version" value="${build.version}" />
|
|
<attribute name="Implementation-Vendor" value="Apache Software Foundation" />
|
|
<attribute name="Implementation-Vendor-Id" value="org.apache" />
|
|
<attribute name="Extension-name" value="org.apache.ivy" />
|
|
<attribute name="Build-Version" value="${build.version}" />
|
|
<attribute name="Bundle-Version" value="${bundle.version}" />
|
|
</manifest>
|
|
<fileset dir="${core.classes.build.dir}" />
|
|
<fileset dir="${ant.classes.build.dir}" />
|
|
<fileset dir="${optional.classes.build.dir}" />
|
|
</jar>
|
|
<jar destfile="${artifacts.build.dir}/jars/${final.core.name}">
|
|
<metainf dir="${basedir}" includes="LICENSE,NOTICE" />
|
|
<manifest>
|
|
<attribute name="Specification-Title" value="Apache Ivy Core (without Ant tasks)" />
|
|
<attribute name="Specification-Version" value="${build.version}" />
|
|
<attribute name="Specification-Vendor" value="Apache Software Foundation" />
|
|
<attribute name="Implementation-Title" value="org.apache.ivy" />
|
|
<attribute name="Implementation-Version" value="${build.version}" />
|
|
<attribute name="Implementation-Vendor" value="Apache Software Foundation" />
|
|
<attribute name="Implementation-Vendor-Id" value="org.apache" />
|
|
<attribute name="Build-Version" value="${build.version}" />
|
|
</manifest>
|
|
<fileset dir="${core.classes.build.dir}" />
|
|
<fileset dir="${optional.classes.build.dir}" />
|
|
</jar>
|
|
<!-- copy main jar to ease its use as an OSGi bundle -->
|
|
<copy file="${artifacts.build.dir}/jars/${final.name}"
|
|
tofile="${artifacts.build.dir}/org.apache.ivy_${bundle.version}.jar" />
|
|
<echo file="${artifacts.build.dir}/readme.txt">The Ivy jars explained${line.separator}
|
|
${line.separator}
|
|
${final.name} The full Ivy jar, including all Ivy classes.${line.separator}
|
|
${final.core.name} The Ivy core, eg everything but classes dependent on Ant.${line.separator}
|
|
</echo>
|
|
|
|
<!-- clean generated module properties file -->
|
|
<delete file="${core.classes.build.dir}/module.properties" />
|
|
</target>
|
|
|
|
<!-- =================================================================
|
|
PUBLISH LOCAL
|
|
================================================================= -->
|
|
<target name="publish-local" depends="jar,sources" description="publishes Ivy to Ivy local repository">
|
|
<ivy:publish resolver="local" pubrevision="${build.version}"
|
|
artifactsPattern="${artifacts.build.dir}/[type]s/[artifact].[ext]"
|
|
forcedeliver="true" />
|
|
</target>
|
|
|
|
<!-- =================================================================
|
|
TESTS
|
|
================================================================= -->
|
|
<target name="build-custom-resolver-jar" depends="jar">
|
|
<mkdir dir="${build.dir}/custom-classpath" />
|
|
<javac srcdir="${basedir}/test/custom-classpath"
|
|
destdir="${build.dir}/custom-classpath"
|
|
classpathref="run.classpath"
|
|
source="${ivy.minimum.javaversion}"
|
|
target="${ivy.minimum.javaversion}"
|
|
debug="${debug.mode}"
|
|
includeantruntime="no" />
|
|
<jar destfile="${test.dir}/org/apache/ivy/core/settings/custom-resolver.jar"
|
|
basedir="${build.dir}/custom-classpath" />
|
|
</target>
|
|
|
|
<target name="init-tests-offline" if="offline">
|
|
<fileset id="test.fileset" dir="${test.dir}">
|
|
<include name="**/${test.class.pattern}.java" />
|
|
<exclude name="**/Abstract*Test.java" />
|
|
<contains text="junit" />
|
|
<not><contains text="remote.test" /></not>
|
|
</fileset>
|
|
</target>
|
|
|
|
<target name="init-tests-online" unless="offline">
|
|
<fileset id="test.fileset" dir="${test.dir}">
|
|
<include name="**/${test.class.pattern}.java" />
|
|
<exclude name="**/Abstract*Test.java" />
|
|
<contains text="junit" />
|
|
</fileset>
|
|
</target>
|
|
|
|
<target name="init-tests" depends="init-tests-offline, init-tests-online" />
|
|
|
|
<target name="emma" depends="jar" unless="skip.test">
|
|
<ivy:cachepath organisation="emma" module="emma" revision="2.0.5312"
|
|
inline="true" conf="default" pathid="emma.classpath" />
|
|
<ivy:cachepath organisation="emma" module="emma_ant" revision="2.0.5312"
|
|
inline="true" conf="default" pathid="emma.ant.classpath" transitive="false" />
|
|
<taskdef resource="emma_ant.properties">
|
|
<classpath refid="emma.classpath" />
|
|
<classpath refid="emma.ant.classpath" />
|
|
</taskdef>
|
|
<property name="emma.enabled" value="true" />
|
|
<property name="coverage.dir" value="${build.dir}/coverage" />
|
|
<property name="coverage.classes.dir" value="${coverage.dir}/classes" />
|
|
<mkdir dir="${coverage.dir}" />
|
|
<mkdir dir="${coverage.classes.dir}" />
|
|
<emma enabled="${emma.enabled}">
|
|
<instr mode="copy"
|
|
destdir="${coverage.dir}/classes"
|
|
metadatafile="${coverage.dir}/metadata.emma">
|
|
<instrpath>
|
|
<pathelement location="${core.classes.build.dir}" />
|
|
<pathelement location="${ant.classes.build.dir}" />
|
|
<pathelement location="${optional.classes.build.dir}" />
|
|
</instrpath>
|
|
</instr>
|
|
</emma>
|
|
<delete file="${coverage.dir}/coverage.emma" />
|
|
<!-- add emma path to test path, because emma jars need to be available when running
|
|
instrumented classes -->
|
|
<ivy:addpath topath="test.classpath" first="true">
|
|
<pathelement location="${coverage.dir}/classes" />
|
|
<path refid="emma.classpath" />
|
|
</ivy:addpath>
|
|
</target>
|
|
|
|
<target name="build-test" depends="jar">
|
|
<javac srcdir="${test.dir}"
|
|
destdir="${test.build.dir}"
|
|
classpathref="run.classpath"
|
|
source="${ivy.minimum.javaversion}"
|
|
target="${ivy.minimum.javaversion}"
|
|
debug="${debug.mode}"
|
|
includeantruntime="no" />
|
|
<copy todir="${test.build.dir}">
|
|
<fileset dir="${test.dir}">
|
|
<exclude name="**/*.java" />
|
|
</fileset>
|
|
</copy>
|
|
</target>
|
|
|
|
<target name="test-internal" depends="build-test, init-tests" unless="skip.test">
|
|
<mkdir dir="${test.xml.dir}" />
|
|
|
|
<junit
|
|
haltonfailure="off"
|
|
haltonerror="off"
|
|
errorproperty="test.failed"
|
|
failureproperty="test.failed"
|
|
showoutput="no"
|
|
printsummary="yes"
|
|
includeantruntime="yes"
|
|
fork="true">
|
|
<classpath>
|
|
<path refid="test.classpath" />
|
|
</classpath>
|
|
<jvmarg value="-Demma.coverage.out.file=${coverage.dir}/coverage.emma" />
|
|
<jvmarg value="-Demma.coverage.out.merge=true" />
|
|
|
|
<!-- Added this to test IVY-65 -->
|
|
<jvmarg value="-Duser.region=TR" />
|
|
<jvmarg value="-Duser.language=tr" />
|
|
|
|
<formatter type="xml"/>
|
|
<batchtest todir="${test.xml.dir}">
|
|
<fileset refid="test.fileset" />
|
|
</batchtest>
|
|
</junit>
|
|
</target>
|
|
|
|
<target name="test" depends="test-internal" description="Run the test">
|
|
<fail if="test.failed"
|
|
message="At least one test has failed. See logs (in ${test.xml.dir}) for details (use the target test-report to run the test with a report)" />
|
|
</target>
|
|
|
|
<!-- =================================================================
|
|
REPORTS AND DOCUMENTATION
|
|
================================================================= -->
|
|
<target name="test-report" depends="test-internal" unless="skip.test">
|
|
<junitreport todir="${test.xml.dir}">
|
|
<fileset dir="${test.xml.dir}">
|
|
<include name="TEST-*.xml" />
|
|
</fileset>
|
|
<report format="frames" todir="${test.report.dir}" />
|
|
</junitreport>
|
|
<fail if="test.failed"
|
|
message="At least one test has failed. See logs (in ${test.xml.dir}) or report (in ${test.report.dir})" />
|
|
</target>
|
|
|
|
<target name="coverage-report" depends="emma, test-report" unless="skip.test"
|
|
description="run tests with instrumentation and generate coverage report">
|
|
<mkdir dir="${coverage.report.dir}" />
|
|
<emma>
|
|
<report sourcepath="${src.dir}">
|
|
<fileset dir="${coverage.dir}">
|
|
<include name="*.emma" />
|
|
</fileset>
|
|
|
|
<txt outfile="${coverage.report.dir}/coverage.txt" />
|
|
<html outfile="${coverage.report.dir}/coverage.html" />
|
|
</report>
|
|
</emma>
|
|
</target>
|
|
|
|
<target name="ivy-report" depends="resolve">
|
|
<ivy:report todir="${ivy.report.dir}"/>
|
|
</target>
|
|
|
|
<target name="javadoc" unless="skip.javadoc">
|
|
<javadoc destdir="${javadoc.build.dir}" useexternalfile="true">
|
|
<fileset dir="${src.dir}" includes="**/*.java" />
|
|
</javadoc>
|
|
</target>
|
|
|
|
<target name="sources" depends="default-version" description="Create source archive files">
|
|
<mkdir dir="${artifacts.build.dir}/sources/"/>
|
|
<jar destfile="${artifacts.build.dir}/sources/${final.name}">
|
|
<metainf dir="${basedir}" includes="LICENSE,NOTICE" />
|
|
<manifest>
|
|
<attribute name="Specification-Title" value="Apache Ivy Sources" />
|
|
<attribute name="Specification-Version" value="${build.version}" />
|
|
<attribute name="Specification-Vendor" value="Apache Software Foundation" />
|
|
</manifest>
|
|
<fileset dir="${src.dir}" />
|
|
</jar>
|
|
<!-- TODO : we should restrict sources files to the core only -->
|
|
<jar destfile="${artifacts.build.dir}/sources/${final.core.name}">
|
|
<metainf dir="${basedir}" includes="LICENSE,NOTICE" />
|
|
<manifest>
|
|
<attribute name="Specification-Title" value="Apache Ivy Sources" />
|
|
<attribute name="Specification-Version" value="${build.version}" />
|
|
<attribute name="Specification-Vendor" value="Apache Software Foundation" />
|
|
</manifest>
|
|
<fileset dir="${src.dir}" />
|
|
</jar>
|
|
</target>
|
|
|
|
<target name="fixcrlf">
|
|
<property name="eol.native.includes"
|
|
value="**/*.html,**/*.json,**/*.java,**/*.xml,**/*.txt,**/*.MF,**/*.properties,**/*.patterns,**/*.pom,**/*.xsl,**/*.css" />
|
|
<property name="eol.native.excludes"
|
|
value="build/**,bin/**,lib/**" />
|
|
|
|
<fileset id="eol.native.fileset"
|
|
dir="${basedir}"
|
|
includes="${eol.native.includes}"
|
|
excludes="${eol.native.excludes}" />
|
|
|
|
<fixcrlf srcdir="${basedir}"
|
|
includes="${eol.native.includes}"
|
|
excludes="${eol.native.excludes}" />
|
|
<apply executable="svn">
|
|
<fileset refid="eol.native.fileset" />
|
|
<arg value="propset" />
|
|
<arg value="svn:eol-style" />
|
|
<arg value='"native"' />
|
|
</apply>
|
|
</target>
|
|
|
|
<target name="checkstyle" depends="jar" description="checks Ivy codebase according to ${checkstyle.src.dir}/checkstyle-config">
|
|
<ivy:cachepath organisation="checkstyle" module="checkstyle" revision="4.3"
|
|
inline="true" conf="default" pathid="checkstyle.classpath" transitive="true" />
|
|
<taskdef resource="checkstyletask.properties" classpathref="checkstyle.classpath" />
|
|
|
|
<mkdir dir="${checkstyle.report.dir}" />
|
|
<checkstyle config="${checkstyle.src.dir}/checkstyle-config" failOnViolation="false">
|
|
<formatter type="xml" toFile="${checkstyle.report.dir}/checkstyle.xml" />
|
|
<fileset dir="${src.dir}">
|
|
<include name="**/*.java" />
|
|
</fileset>
|
|
<fileset dir="${example.dir}">
|
|
<include name="**/*.java" />
|
|
</fileset>
|
|
</checkstyle>
|
|
</target>
|
|
|
|
<target name="checkstyle-report" depends="checkstyle">
|
|
<property name="checkstyle.basedir" location="${src.dir}" />
|
|
<xslt in="${checkstyle.report.dir}/checkstyle.xml"
|
|
style="${checkstyle.src.dir}/checkstyle-frames.xsl"
|
|
out="${checkstyle.report.dir}/output.txt">
|
|
<param name="basedir" expression="${checkstyle.basedir}" />
|
|
</xslt>
|
|
</target>
|
|
|
|
|
|
<!-- =================================================================
|
|
IDE SPECIFIC
|
|
================================================================= -->
|
|
<available file="${basedir}/.classpath" property="eclipse.classpath.exists" />
|
|
<target name="check-eclipse-classpath-overwrite" if="eclipse.classpath.exists">
|
|
<input message=".classpath file already exists.${line.separator}Are you sure you want to overwrite it and loose your original file?"
|
|
validargs="Y,N,y,n" addproperty="eclipse.classpath.confirm" />
|
|
<condition property="eclipse.classpath.abort">
|
|
<equals arg1="${eclipse.classpath.confirm}" arg2="N" casesensitive="false" />
|
|
</condition>
|
|
</target>
|
|
|
|
<target name="eclipse-default" depends="resolve, check-eclipse-classpath-overwrite"
|
|
unless="eclipse.classpath.abort"
|
|
description="creates a default .classpath for eclipse, using jars resolved by this ant build">
|
|
<copy file="${basedir}/.classpath.default" tofile="${basedir}/.classpath" overwrite="true" />
|
|
</target>
|
|
|
|
<target name="eclipse-ivyde" depends="check-eclipse-classpath-overwrite"
|
|
unless="eclipse.classpath.abort"
|
|
description="creates a .classpath for eclipse using Apache IvyDE version">
|
|
<copy file="${basedir}/.classpath.ivyde" tofile="${basedir}/.classpath" overwrite="true" />
|
|
</target>
|
|
</project>
|