<?xml version="1.0" encoding="UTF-8"?> | |
<!-- | |
/* | |
* Copyright 2001-2004 The Apache Software Foundation. | |
* | |
* Licensed 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. | |
*/ | |
--> | |
<!-- | |
| The main goals for multi project build are: | |
| | |
| default | |
| Build all the modules | |
| | |
| clean | |
| Deletes the 'target' directory in all projects | |
| clean-repo | |
| Deletes the 'target' directory in all projects | |
| | |
| war | |
| Build the war | |
| | |
| | |
--> | |
<project default="jar" | |
xmlns:j="jelly:core" | |
xmlns:u="jelly:util" | |
xmlns:deploy="deploy" | |
xmlns:modules="local:modules" | |
xmlns:ant="jelly:ant" | |
xmlns:plugin="plugin" | |
xmlns:macros="macros" | |
xmlns:maven="jelly:maven" | |
xmlns:define="jelly:define"> | |
<j:set var="dist.name" value="${pom.artifactId}-${pom.currentVersion}"/> | |
<j:set var="dist.dir" value="target/dist"/> | |
<tstamp> | |
<format property="release_date" pattern="MMMM d, yyyy" locale="en"/> | |
</tstamp> | |
<preGoal name="modules:reactor:init"> | |
<j:set var="groupId" value="maven-itest-plugin"/> | |
<j:set var="artifactId" value="maven-itest-plugin"/> | |
<j:set var="version" value="1.0"/> | |
<attainGoal name="plugin:download-artifact"/> | |
<maven:installPlugin | |
file="${maven.repo.local}/${groupId}/plugins/${artifactId}-${version}.jar" | |
cache="true"/> | |
</preGoal> | |
<preGoal name="build:start"> | |
<property name="modules" value="core,common,xml,wsdl,adb,codegen,doom,webapp,addressing"/> | |
</preGoal> | |
<!-- ======= --> | |
<!-- Modules --> | |
<!-- ======= --> | |
<goal name="modules:reactor:init"> | |
<!-- | |
| Determine the includes which the reactor will use. | |
| | |
| Uses 4 properties to control which modules will be include: | |
| | |
| module.types Comma seperated list of module types (ie. specs or modules) | |
| module.includes Comma seperated list of module names (ie. common, core, ...) | |
| modules Same as module.includes, module.includes initializes to this value | |
| module.excludes Comma seperated list of module names to exclude | |
| | |
| The end result is that modules.reactor.includes is set to the project.xml files | |
| to include. This is the value the reactor will use. | |
| | |
| Example, to only build the common and core modules: | |
| | |
| maven -Dmodules=common,core | |
--> | |
<j:if test="${context.getVariable('module.types') == null}"> | |
<j:set var="module.types" value="modules,applications,plugins"/> | |
</j:if> | |
<j:if test="${context.getVariable('modules') == null}"> | |
<!-- The default is to build everything --> | |
<j:set var="modules" value="*"/> | |
</j:if> | |
<j:if test="${context.getVariable('module.includes') == null}"> | |
<j:set var="module.includes" value="${modules}"/> | |
</j:if> | |
<j:if test="${context.getVariable('module.excludes') == null}"> | |
<j:set var="module.excludes" value=""/> | |
</j:if> | |
<u:tokenize var="types" delim=",">${module.types}</u:tokenize> | |
<ant:fileScanner var="scanner"> | |
<ant:fileset dir="${basedir}"> | |
<j:forEach var="type" items="${types}"> | |
<j:choose> | |
<j:when test="${context.getVariable('module.includes') == '*'}"> | |
<ant:include name="${type}/*/project.xml"/> | |
</j:when> | |
<j:otherwise> | |
<u:tokenize var="includes" delim=",">${module.includes}</u:tokenize> | |
<j:forEach var="include" items="${includes}"> | |
<u:available file="${basedir}/${type}/${include}/project.xml"> | |
<ant:include name="${type}/${include}/project.xml"/> | |
</u:available> | |
</j:forEach> | |
</j:otherwise> | |
</j:choose> | |
<j:choose> | |
<j:when test="${context.getVariable('module.excludes') == '*'}"> | |
<ant:exclude name="${type}/*/project.xml"/> | |
</j:when> | |
<j:otherwise> | |
<u:tokenize var="excludes" delim=",">${module.excludes}</u:tokenize> | |
<j:forEach var="exclude" items="${excludes}"> | |
<u:available file="${basedir}/${type}/${exclude}/project.xml"> | |
<ant:exclude name="${type}/${exclude}/project.xml"/> | |
</u:available> | |
</j:forEach> | |
</j:otherwise> | |
</j:choose> | |
</j:forEach> | |
</ant:fileset> | |
</ant:fileScanner> | |
<!-- Setup the includes which will be used by the reactor --> | |
<j:forEach var="file" items="${scanner.iterator()}"> | |
<!-- | |
| Would be nice if reactor would take a file set, but for now just remove | |
| the baseddir portion of the file's name. So this will essentially strip off | |
| ${basedir} | |
--> | |
<j:set var="directory" | |
value="${file.parentFile.parentFile.name}/${file.parentFile.name}"/> | |
<j:set var="filename" value="${directory}/${file.name}"/> | |
<j:choose> | |
<j:when test="${context.getVariable('modules.reactor.includes') == null}"> | |
<j:set var="modules.directories" value="${directory}"/> | |
<j:set var="modules.reactor.includes" value="${filename}"/> | |
</j:when> | |
<j:otherwise> | |
<j:set var="modules.directories" value="${modules.directories},${directory}"/> | |
<j:set var="modules.reactor.includes" | |
value="${modules.reactor.includes},${filename}"/> | |
</j:otherwise> | |
</j:choose> | |
</j:forEach> | |
</goal> | |
<!-- Helper tags for modules --> | |
<define:taglib uri="local:modules"> | |
<define:tag name="reactor"> | |
<attainGoal name="modules:reactor:init"/> | |
<j:choose> | |
<j:when test="${goals != null}"> | |
<maven:reactor | |
basedir="${basedir}" | |
includes="${modules.reactor.includes}" | |
banner="Executing (${goals}):" | |
ignoreFailures="false" | |
goals="${goals}" | |
postProcessing="true" | |
/> | |
</j:when> | |
<j:when test="${goals == null}"> | |
<maven:reactor | |
basedir="${basedir}" | |
includes="${modules.reactor.includes}" | |
banner="Executing (${goals}):" | |
ignoreFailures="false" | |
postProcessing="true" | |
/> | |
</j:when> | |
</j:choose> | |
<!-- Set reactor projects in parent scope so goals have access to it --> | |
<j:set var="reactorProjects" value="${reactorProjects}" scope="parent"/> | |
</define:tag> | |
</define:taglib> | |
<goal name="m:init"> | |
<ant:fileScanner var="scanner"> | |
<ant:fileset dir="${basedir}"> | |
<u:tokenize var="includes" delim=",">${maven.multiproject.includes}</u:tokenize> | |
<j:forEach var="include" items="${includes}"> | |
<ant:include name="${include}"/> | |
</j:forEach> | |
<u:tokenize var="excludes" delim=",">${maven.multiproject.excludes}</u:tokenize> | |
<j:forEach var="exclude" items="${excludes}"> | |
<ant:exclude name="${exclude}"/> | |
</j:forEach> | |
</ant:fileset> | |
</ant:fileScanner> | |
<j:set var="maven.multiproject.includes" value=""/> | |
<j:set var="maven.multiproject.excludes" value=""/> | |
<j:set var="modules.directories" value=""/> | |
<u:tokenize var="moduleList" delim=",">${modules}</u:tokenize> | |
<j:set var="currentDir" value="${basedir}/"/> | |
<j:forEach var="file" items="${scanner.iterator()}"> | |
<j:set var="directory" value="${file.parentFile.absolutePath}"/> | |
<j:set var="include" value="${file.absolutePath.substring(currentDir.length())}"/> | |
<j:if test="${moduleList.isEmpty() || moduleList.contains(file.parentFile.name)}"> | |
<j:choose> | |
<j:when test="${context.getVariable('maven.multiproject.includes') == ''}"> | |
<j:set var="modules.directories" value="${directory}"/> | |
<j:set var="maven.multiproject.includes" value="${include}"/> | |
</j:when> | |
<j:otherwise> | |
<j:set var="modules.directories" | |
value="${modules.directories},${directory}"/> | |
<j:set var="maven.multiproject.includes" | |
value="${maven.multiproject.includes},${include}"/> | |
</j:otherwise> | |
</j:choose> | |
</j:if> | |
</j:forEach> | |
</goal> | |
<goal name="jar:jar"> | |
<attainGoal name="create-jar"/> | |
<ant:copy file="target/lib/axis2-${pom.currentVersion}.jar" | |
toDir="target/"/> | |
</goal> | |
<goal name="jar"> | |
<attainGoal name="multiproject:install"/> | |
<attainGoal name="jar:install"/> | |
</goal> | |
<goal name="init"> | |
<ant:mkdir dir="target"/> | |
<ant:mkdir dir="${dist.dir}"/> | |
<ant:mkdir dir="target/lib"/> | |
<uptodate property="jars.uptodate" targetfile="target/axis2-${pom.currentVersion}.war"> | |
<srcfiles dir="modules"> | |
<include name="**/*.java"/> | |
<include name="**/*.xml"/> | |
<include name="**/*.wsdl"/> | |
<exclude name="**/target/**"/> | |
</srcfiles> | |
</uptodate> | |
<echo message="the files are up to date = ${jars.uptodate}"></echo> | |
</goal> | |
<goal name="modules:clean"> | |
<attainGoal name="modules:reactor:init"/> | |
<u:tokenize var="directories" delim=",">${modules.directories}</u:tokenize> | |
<j:forEach var="directory" items="${directories}"> | |
<ant:echo>+----------------------------------------</ant:echo> | |
<ant:echo>| Cleaning: ${directory}</ant:echo> | |
<ant:echo>+----------------------------------------</ant:echo> | |
<ant:delete dir="${directory}/target"/> | |
<ant:delete quiet="false" failonerror="false"> | |
<ant:fileset dir="${directory}"> | |
<ant:include name="maven.log"/> | |
<ant:include name="velocity.log*"/> | |
<ant:include name="junit*.properties"/> | |
<ant:include name="axis.log"/> | |
<ant:include name="junit*.properties"/> | |
<ant:include name="temp.properties"/> | |
</ant:fileset> | |
</ant:delete> | |
<ant:echo></ant:echo> | |
</j:forEach> | |
<ant:echo>+----------------------------------------</ant:echo> | |
<ant:echo>| Cleaning: target and etc/target</ant:echo> | |
<ant:echo>+----------------------------------------</ant:echo> | |
<ant:delete dir="target"/> | |
<ant:delete dir="etc/target"/> | |
</goal> | |
<goal name="clean"> | |
<ant:delete dir="${user.home}/.axis2"/> | |
<ant:delete dir="${user.home}/.axis2home"/> | |
<attainGoal name="modules:clean"/> | |
<attainGoal name="clean-repo"/> | |
</goal> | |
<!-- ================================================================ --> | |
<!--- Clean the Repository --> | |
<!-- ================================================================ --> | |
<goal name="clean-repo"> | |
<ant:delete> | |
<ant:fileset dir="${maven.repo.local}"> | |
<ant:include name="axis/jars/axis2*.jar"/> | |
</ant:fileset> | |
</ant:delete> | |
</goal> | |
<goal name="all-tests"> | |
<modules:reactor goals="jar:install,test,itest"/> | |
</goal> | |
<goal name="cleanse-sources"> | |
<modules:reactor goals="cleanse-sources"/> | |
</goal> | |
<goal name="clover"> | |
<modules:reactor goals="clover:on,jar:install,test"/> | |
<attainGoal name="clover:merge"/> | |
<attainGoal name="clover:report"/> | |
</goal> | |
<goal name="create-jar" prereqs="init"> | |
<jar destfile="target/lib/axis2-${pom.currentVersion}.jar"> | |
<fileset dir="modules/core/target/classes"/> | |
<!-- adding the tool classes. This is needed to get the ant task --> | |
<!--<fileset dir="modules/tool/target/classes"/>--> | |
<fileset dir="modules/common/target/classes"/> | |
<fileset dir="modules/xml/target/classes"/> | |
<fileset dir="modules/wsdl/target/classes"/> | |
<fileset dir="modules/adb/target/classes"/> | |
<fileset dir="modules/codegen/target/classes"/> | |
<fileset dir="modules/doom/target/classes"/> | |
<fileset dir="modules/addressing/target/classes"/> | |
<fileset dir="modules/addressing/target/"> | |
<include name="modules/addressing.mar"/> | |
</fileset> | |
</jar> | |
</goal> | |
<goal name="create-lib"> | |
<macros:copy-deps copyToDir="${target/lib}"/> | |
</goal> | |
<!-- ================================================================ --> | |
<!--- Create the War --> | |
<!-- ================================================================ --> | |
<goal name="war" prereqs="init, jar"> | |
<ant:mkdir dir="target/temp/war/lib"/> | |
<ant:mkdir dir="target/temp/war/toWEB-INF/modules"/> | |
<ant:mkdir dir="target/temp/war/toWEB-INF/services"/> | |
<!-- Copy the 3rd party libs, relevant to minimal bin distro --> | |
<macros:copy-deps copyToDir="target/temp/war/lib" | |
modules="core,common,xml,wsdl,adb"/> | |
<!-- Create axis2-core.jar --> | |
<jar destfile="target/temp/war/lib/axis2-core-${pom.currentVersion}.jar"> | |
<fileset dir="modules/core/target/classes/"/> | |
<fileset dir="modules/common/target/classes/"/> | |
<fileset dir="modules/xml/target/classes/"/> | |
<fileset dir="modules/wsdl/target/classes/"/> | |
</jar> | |
<!-- Copy the adb jar --> | |
<ant:copy toDir="target/temp/war/lib"> | |
<ant:fileset file="modules/adb/target/axis2-adb-${pom.currentVersion}.jar"/> | |
</ant:copy> | |
<!-- copy the addressing mar --> | |
<ant:copy toDir="target/temp/war/toWEB-INF/modules"> | |
<ant:fileset file="modules/addressing/target/addressing.mar"/> | |
</ant:copy> | |
<!-- copy the sample services --> | |
<ant:copy toDir="target/temp/war/toWEB-INF/services"> | |
<ant:fileset file="modules/samples/target/toWar/services/version.aar"/> | |
</ant:copy> | |
<ant:war destfile="target/dist/axis2.war" | |
webxml="modules/webapp/conf/web.xml"> | |
<ant:fileset dir="modules/webapp"/> | |
<ant:lib dir="target/temp/war/lib"> | |
<ant:include name="**"/> | |
<ant:exclude name="**servlet**"/> | |
<ant:exclude name="ant*.jar"/> | |
</ant:lib> | |
<ant:classes dir="modules/core/conf"> | |
<ant:include name="*.properties"/> | |
</ant:classes> | |
<ant:webinf dir="modules/core/src/org/apache/axis2/deployment"> | |
<ant:include name="*.xml"/> | |
</ant:webinf> | |
<ant:webinf dir="target/temp/war/toWEB-INF"/> | |
</ant:war> | |
</goal> | |
<!-- to transforme htmls to xdocs --> | |
<preGoal name="xdoc:jelly-transform"> | |
<attainGoal name="html2xdoc"/> | |
</preGoal> | |
<!-- ================================================================ --> | |
<!--- Create the Java Docs --> | |
<!-- ================================================================ --> | |
<goal name="javadocs" prereqs="init, create-lib"> | |
<ant:javadoc packagenames="org.apache.axis2.*" | |
defaultexcludes="yes" | |
destdir="target/apidocs" | |
author="true" | |
version="true" | |
use="true" | |
windowtitle="Axis2 API"> | |
<ant:sourcepath> | |
<ant:pathelement location="modules/adb/src"/> | |
<ant:pathelement location="modules/addressing/src"/> | |
<ant:pathelement location="modules/codegen/src"/> | |
<ant:pathelement location="modules/core/src"/> | |
<ant:pathelement location="modules/doom/src"/> | |
<ant:pathelement location="modules/tool/src"/> | |
<ant:pathelement location="modules/wsdl/src"/> | |
<ant:pathelement location="modules/xml/src"/> | |
</ant:sourcepath> | |
<ant:classpath> | |
<ant:fileset dir="target/lib"> | |
<ant:include name="**/*.jar"/> | |
</ant:fileset> | |
</ant:classpath> | |
<ant:excludepackage name="org.apache.axis2.tool.codegen.*"/> | |
<ant:excludepackage name="org.apache.axis2.tool.service.*"/> | |
</ant:javadoc> | |
</goal> | |
<!-- ================================================================ --> | |
<!--- Reports --> | |
<!-- ================================================================ --> | |
<!-- Conditionally disable linkcheck based on a property. --> | |
<postGoal name="xdoc:register-reports"> | |
<j:if test="${maven.allreports.disable}"> | |
<echo>Reports are disabled. Deregistering all the reports ....</echo> | |
<attainGoal name="maven-linkcheck-plugin:deregister"/> | |
<echo>linkcheck is disabled.</echo> | |
<attainGoal name="maven-checkstyle-plugin:deregister"/> | |
<echo>checkstyle is disabled.</echo> | |
<attainGoal name="maven-changes-plugin:deregister"/> | |
<echo>changes is disabled.</echo> | |
<attainGoal name="maven-changelog-plugin:deregister"/> | |
<echo>changelog is disabled.</echo> | |
<attainGoal name="maven-license-plugin:deregister"/> | |
<echo>license is disabled.</echo> | |
<attainGoal name="maven-javadoc-plugin:deregister"/> | |
<echo>javadoc is disabled.</echo> | |
<attainGoal name="maven-junit-report-plugin:deregister"/> | |
<echo>junit-report is disabled.</echo> | |
<attainGoal name="maven-tasklist-plugin:deregister"/> | |
<echo>tasklist is disabled.</echo> | |
</j:if> | |
</postGoal> | |
<!-- ================================================================ --> | |
<!--- Create the Release --> | |
<!-- ================================================================ --> | |
<goal name="init-dist"> | |
<ant:filter token="axis2_version" value="${pom.currentVersion}"/> | |
<ant:filter token="release_date" value="${release_date}"/> | |
<property name="min_dep_cache" value="target/temp/cache/min"/> | |
<property name="std_dep_cache" value="target/temp/cache/std"/> | |
<property name="war_dep_cache" value="target/temp/cache/war"/> | |
<ant:mkdir dir="target/dist"/> | |
</goal> | |
<goal name="dist-bin" prereqs="jar,init-dist,cache-std-deps"> | |
<ant:echo>+----------------------------------------------</ant:echo> | |
<ant:echo>| Creating: Axis2 Standard Binary Distribution</ant:echo> | |
<ant:echo>+----------------------------------------------</ant:echo> | |
<ant:property name="std.bin.temp.dir" value="target/temp/std/bin"/> | |
<ant:mkdir dir="${std.bin.temp.dir}/lib"/> | |
<ant:mkdir dir="${std.bin.temp.dir}/bin"/> | |
<ant:mkdir dir="${std.bin.temp.dir}/modules"/> | |
<ant:mkdir dir="${std.bin.temp.dir}/samples"/> | |
<!-- Copy bin scripts --> | |
<ant:copy todir="${std.bin.temp.dir}/bin"> | |
<ant:fileset dir="bin"/> | |
</ant:copy> | |
<!-- Copy the 3rd party libs --> | |
<ant:copy toDir="${std.bin.temp.dir}/lib"> | |
<ant:fileset dir="${min_dep_cache}"/> | |
<ant:fileset dir="${std_dep_cache}"/> | |
</ant:copy> | |
<!-- Delete tesing jars --> | |
<echo message="Deleting Unwanted testing jars"/> | |
<ant:delete> | |
<fileset dir="${std.bin.temp.dir}/lib"> | |
<include name="**/ant*.jar"/> | |
<include name="**/xmlunit*.jar"/> | |
<include name="**/junit*.jar"/> | |
</fileset> | |
</ant:delete> | |
<!-- Create axis2-core.jar --> | |
<jar destfile="${std.bin.temp.dir}/lib/axis2-core-${pom.currentVersion}.jar"> | |
<fileset dir="modules/core/target/classes/"/> | |
<fileset dir="modules/common/target/classes/"/> | |
<fileset dir="modules/xml/target/classes/"/> | |
<fileset dir="modules/wsdl/target/classes/"/> | |
</jar> | |
<ant:copy toDir="${std.bin.temp.dir}/lib"> | |
<ant:fileset file="modules/adb/target/axis2-adb-${pom.currentVersion}.jar"/> | |
<ant:fileset file="modules/codegen/target/axis2-codegen-${pom.currentVersion}.jar"/> | |
<ant:fileset file="modules/doom/target/axis2-doom-${pom.currentVersion}.jar"/> | |
</ant:copy> | |
<!-- Copy addressing mar --> | |
<ant:copy toDir="${std.bin.temp.dir}/modules"> | |
<ant:fileset file="modules/addressing/target/addressing.mar"/> | |
</ant:copy> | |
<!-- Copy the samples --> | |
<ant:copy todir="${std.bin.temp.dir}/samples"> | |
<ant:fileset dir="modules/samples/target/samples"/> | |
</ant:copy> | |
<ant:copy todir="${std.bin.temp.dir}/samples/userguide"> | |
<ant:fileset file="${std.bin.temp.dir}/samples/groovyService.aar"/> | |
</ant:copy> | |
<ant:delete file="${std.bin.temp.dir}/samples/groovyService.aar"/> | |
<ant:zip file="${dist.dir}/axis2-std-${pom.currentVersion}-bin.zip" | |
basedir="${std.bin.temp.dir}"/> | |
<ant:delete dir="${std.bin.temp.dir}"/> | |
</goal> | |
<goal name="cache-min-deps" prereqs="init-dist"> | |
<ant:mkdir dir="${min_dep_cache}"/> | |
<j:if test="${minDeps.uptodate != 'yes'}"> | |
<macros:copy-deps copyToDir="${min_dep_cache}" | |
mods="core,common,xml,wsdl,adb"/> | |
<property name="minDeps.uptodate" value="yes"/> | |
</j:if> | |
</goal> | |
<goal name="cache-std-deps" prereqs="init-dist,cache-min-deps"> | |
<ant:mkdir dir="${std_dep_cache}"/> | |
<j:if test="${stdDeps.uptodate != 'yes'}"> | |
<macros:copy-deps copyToDir="${std_dep_cache}" | |
mods="codegen,doom"/> | |
<property name="stdDeps.uptodate" value="yes"/> | |
</j:if> | |
</goal> | |
<!-- ================================================================ --> | |
<!--- Create JUnit test reports --> | |
<!-- ================================================================ --> | |
<goal name="test-reports"> | |
<mkdir dir="${basedir}/target/test-reports"/> | |
<ant:junitreport todir="${basedir}/target/test-reports"> | |
<ant:fileset dir="${basedir}/"> | |
<ant:include name="**/test-reports/TEST-*.xml"/> | |
<ant:include name="**/itest-reports/TEST-*.xml"/> | |
</ant:fileset> | |
<ant:report format="frames" todir="${basedir}/target/test-reports" | |
styledir="${basedir}/etc"/> | |
</ant:junitreport> | |
</goal> | |
<define:taglib uri="macros"> | |
<define:tag name="copy-deps"> | |
<ant:echo message="######## MODULES=${mods}"/> | |
<ant:echo message="######## Copy2Dir=${copyToDir}"/> | |
<j:set var="modules" value="${mods}"/> | |
<!-- ######################### REACTOR INIT ##########################################--> | |
<j:if test="${context.getVariable('module.types') == null}"> | |
<j:set var="module.types" value="modules,applications,plugins"/> | |
</j:if> | |
<j:set var="module.includes" value="${modules}"/> | |
<j:if test="${context.getVariable('module.excludes') == null}"> | |
<j:set var="module.excludes" value=""/> | |
</j:if> | |
<u:tokenize var="types" delim=",">${module.types}</u:tokenize> | |
<ant:fileScanner var="scanner"> | |
<ant:fileset dir="${basedir}"> | |
<j:forEach var="type" items="${types}"> | |
<j:choose> | |
<j:when test="${context.getVariable('module.includes') == '*'}"> | |
<ant:include name="${type}/*/project.xml"/> | |
</j:when> | |
<j:otherwise> | |
<u:tokenize var="includes" delim=",">${module.includes}</u:tokenize> | |
<j:forEach var="include" items="${includes}"> | |
<u:available file="${basedir}/${type}/${include}/project.xml"> | |
<ant:include name="${type}/${include}/project.xml"/> | |
</u:available> | |
</j:forEach> | |
</j:otherwise> | |
</j:choose> | |
<j:choose> | |
<j:when test="${context.getVariable('module.excludes') == '*'}"> | |
<ant:exclude name="${type}/*/project.xml"/> | |
</j:when> | |
<j:otherwise> | |
<u:tokenize var="excludes" delim=",">${module.excludes}</u:tokenize> | |
<j:forEach var="exclude" items="${excludes}"> | |
<u:available file="${basedir}/${type}/${exclude}/project.xml"> | |
<ant:exclude name="${type}/${exclude}/project.xml"/> | |
</u:available> | |
</j:forEach> | |
</j:otherwise> | |
</j:choose> | |
</j:forEach> | |
</ant:fileset> | |
</ant:fileScanner> | |
<j:set var="modules.reactor.includes" value=""/> | |
<!-- Setup the includes which will be used by the reactor --> | |
<j:forEach var="file" items="${scanner.iterator()}"> | |
<j:set var="directory" | |
value="${file.parentFile.parentFile.name}/${file.parentFile.name}"/> | |
<j:set var="filename" value="${directory}/${file.name}"/> | |
<j:choose> | |
<j:when test="${context.getVariable('modules.reactor.includes') == null}"> | |
<j:set var="modules.directories" value="${directory}"/> | |
<j:set var="modules.reactor.includes" value="${filename}"/> | |
</j:when> | |
<j:otherwise> | |
<j:set var="modules.directories" | |
value="${modules.directories},${directory}"/> | |
<j:set var="modules.reactor.includes" | |
value="${modules.reactor.includes},${filename}"/> | |
</j:otherwise> | |
</j:choose> | |
</j:forEach> | |
<!-- #################### END OF REACTOR INIT #######################################--> | |
<ant:echo message="Fetching Dependencies for modules: ${modules.reactor.includes}"/> | |
<maven:reactor | |
basedir="${basedir}" | |
postProcessing="true" | |
includes="${modules.reactor.includes}" | |
banner="Executing (${goals}):" | |
ignoreFailures="false"/> | |
<j:forEach var="x" items="${reactorProjects}"> | |
<ant:echo message="Copying ${x} to ${copyToDir}"/> | |
<deploy:copy-deps todir="${copyToDir}" | |
projectDescriptor="${x.getFile()}"/> | |
</j:forEach> | |
<property name="modules" value="*"/> | |
</define:tag> | |
<define:tag name="copy-release-docs"> | |
<ant:copy toFile="${toDir}/README.txt" filtering="on"> | |
<ant:fileset file="${readmeFile}"/> | |
</ant:copy> | |
<ant:copy toFile="${toDir}/release-notes.html" filtering="on"> | |
<ant:fileset file="release-notes.html"/> | |
</ant:copy> | |
<ant:copy toFile="${toDir}/LICENSE.txt" filtering="on"> | |
<ant:fileset file="LICENSE.txt"/> | |
</ant:copy> | |
</define:tag> | |
</define:taglib> | |
</project> | |