mirror of https://github.com/apache/activemq.git
295 lines
9.4 KiB
XML
Executable File
295 lines
9.4 KiB
XML
Executable File
<?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 default="default"
|
|
xmlns:j="jelly:core"
|
|
xmlns:u="jelly:util"
|
|
xmlns:ant="jelly:ant"
|
|
xmlns:modules="local:modules"
|
|
xmlns:maven="jelly:maven"
|
|
>
|
|
|
|
<!-- ======================= -->
|
|
<!-- The multi project goals -->
|
|
<!-- ======================= -->
|
|
<!--
|
|
| The main goals for multi project build are:
|
|
|
|
|
| default or build
|
|
| Executes default build for all projects
|
|
|
|
|
| clean
|
|
| Deletes the 'target' directory in all projects
|
|
|
|
|
| clean-repo
|
|
| Deletes the local repository artifacts
|
|
|
|
|
| rebuild
|
|
| Same as clean default
|
|
|
|
|
| rebuild-all
|
|
| Same as clean clean-repo default
|
|
|
|
|
| In addition to the above we support a -Dmodules command line
|
|
| option which is a comma seperated list of module names (ie.
|
|
| common, core, ...)
|
|
-->
|
|
<j:set var="distDir" value="target/${pom.groupId}-${pom.currentVersion}"/>
|
|
|
|
<goal name="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>
|
|
|
|
<!-- Build failure reports: initial file creation and data-->
|
|
<preGoal name="default">
|
|
<j:set var="generateBuildReports" value="${buildreport.generate}"/>
|
|
<j:if test="${generateBuildReports == 'true'}">
|
|
<attainGoal name="build-failure-report:init-report"/>
|
|
</j:if>
|
|
</preGoal>
|
|
|
|
<goal name="null" description="temp target for Continuum 1.0 alpha 2">
|
|
<attainGoal name="nightly-build"/>
|
|
</goal>
|
|
|
|
<goal name="rebuild" prereqs="clean,default"/>
|
|
<goal name="rebuild-all">
|
|
<attainGoal name="clean"/>
|
|
<attainGoal name="clean-repo"/>
|
|
<attainGoal name="default"/>
|
|
</goal>
|
|
|
|
<goal name="build" prereqs="default"/>
|
|
<goal name="default" prereqs="init">
|
|
<j:set var="goal" value="default"/>
|
|
<attainGoal name="multiproject:goal"/>
|
|
</goal>
|
|
|
|
<goal name="assembly:goal" prereqs="init">
|
|
<maven:reactor
|
|
basedir="."
|
|
includes="assembly/project.xml"
|
|
goals="${goal}"
|
|
ignoreFailures="false"
|
|
/>
|
|
</goal>
|
|
|
|
<goal name="site:deploy" prereqs="init">
|
|
<j:set var="goal" value="site:deploy"/>
|
|
<attainGoal name="multiproject:goal"/>
|
|
</goal>
|
|
|
|
<goal name="dist:build" prereqs="init">
|
|
<j:set var="goal" value="dist:build"/>
|
|
<attainGoal name="assembly:goal"/>
|
|
</goal>
|
|
|
|
<goal name="dist:build-bin" prereqs="init">
|
|
<j:set var="goal" value="dist:build-bin"/>
|
|
<attainGoal name="assembly:goal"/>
|
|
</goal>
|
|
|
|
<goal name="dist:deploy" prereqs="init">
|
|
<j:set var="goal" value="dist:deploy"/>
|
|
<attainGoal name="assembly:goal"/>
|
|
</goal>
|
|
|
|
<goal name="clean" prereqs="init">
|
|
<!-- should remove the base dir target and xdocs as well -->
|
|
<ant:delete dir="${basedir}/target"/>
|
|
<ant:delete dir="${basedir}/xdocs"/>
|
|
|
|
<j:set var="goal" value="clean"/>
|
|
<attainGoal name="multiproject:goal"/>
|
|
</goal>
|
|
|
|
<goal name="clean-targets" prereqs="init">
|
|
<u:tokenize var="directories" delim=",">${modules.directories}</u:tokenize>
|
|
<ant:delete dir="${basedir}/target"/>
|
|
<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:fileset>
|
|
</ant:delete>
|
|
<ant:echo></ant:echo>
|
|
</j:forEach>
|
|
</goal>
|
|
|
|
<goal name="clean-repo" prereqs="init">
|
|
<ant:echo>+----------------------------------------</ant:echo>
|
|
<ant:echo>| Cleaning: repo </ant:echo>
|
|
<ant:echo>+----------------------------------------</ant:echo>
|
|
<delete dir="${maven.repo.local}/activemq"/>
|
|
</goal>
|
|
|
|
<goal name="test" prereqs="init">
|
|
<j:set var="goal" value="test"/>
|
|
<attainGoal name="multiproject:goal"/>
|
|
</goal>
|
|
|
|
<preGoal name="continuum:default">
|
|
<j:set var="generateBuildReports" value="${buildreport.generate}"/>
|
|
<j:if test="${generateBuildReports == 'true'}">
|
|
<attainGoal name="build-failure-report:init-report"/>
|
|
</j:if>
|
|
</preGoal>
|
|
|
|
<goal name="continuum:default" prereqs="init">
|
|
<j:choose>
|
|
<j:when test="${ignoreTestFailures==true}">
|
|
<maven:reactor basedir="." goals="default" includes="${maven.multiproject.includes}" ignoreFailures="true"/>
|
|
<j:if test="${!failedProjects.isEmpty()}">
|
|
<ant:echo> </ant:echo>
|
|
<ant:echo>There are test failures in the following modules:</ant:echo>
|
|
<j:forEach var="failedProj" items="${failedProjects}">
|
|
<ant:echo> ${failedProj} </ant:echo>
|
|
</j:forEach>
|
|
<fail message="There are test failures."/>
|
|
</j:if>
|
|
</j:when>
|
|
<j:otherwise>
|
|
<maven:reactor basedir="." goals="default" includes="${maven.multiproject.includes}" ignoreFailures="false"/>
|
|
</j:otherwise>
|
|
</j:choose>
|
|
</goal>
|
|
|
|
<goal name="eclipse" prereqs="init">
|
|
<j:set var="goal" value="eclipse"/>
|
|
<attainGoal name="multiproject:goal"/>
|
|
</goal>
|
|
|
|
<goal name="intellij" prereqs="idea"/>
|
|
<goal name="idea" prereqs="init">
|
|
<attainGoal name="idea:multiproject"/>
|
|
</goal>
|
|
|
|
<goal name="jar:deploy" prereqs="init">
|
|
<j:set var="goal" value="jar:deploy"/>
|
|
<attainGoal name="multiproject:goal"/>
|
|
</goal>
|
|
|
|
<goal name="jar:install" prereqs="init">
|
|
<j:set var="goal" value="jar:install"/>
|
|
<attainGoal name="multiproject:goal"/>
|
|
</goal>
|
|
|
|
<goal name="install">
|
|
<attainGoal name="multiproject:install"/>
|
|
</goal>
|
|
|
|
<goal name="activemq:site">
|
|
<attainGoal name="multiproject:site"/>
|
|
</goal>
|
|
|
|
<goal name="convert-snapshots-auto">
|
|
<j:set var="goal" value="convert-snapshots-auto"/>
|
|
<attainGoal name="multiproject:goal"/>
|
|
</goal>
|
|
|
|
<goal name="dc">
|
|
<attain>
|
|
<attainGoal name="clean"/>
|
|
<attainGoal name="multiproject:install"/>
|
|
<attainGoal name="multiproject:deploy"/>
|
|
<attainGoal name="dist:deploy"/>
|
|
</attain>
|
|
</goal>
|
|
|
|
<goal name="rebuild-dist-bin">
|
|
<attainGoal name="rebuild-all"/>
|
|
<attainGoal name="dist:build-bin"/>
|
|
</goal>
|
|
|
|
<goal name="rebuild-it-all">
|
|
<attainGoal name="rebuild-all"/>
|
|
<attainGoal name="dist:build-bin"/>
|
|
<attainGoal name="site"/>
|
|
</goal>
|
|
<goal name="temp-site">
|
|
<attainGoal name="init"/>
|
|
<attainGoal name="multiproject:create-nav"/>
|
|
<attainGoal name="multiproject:create-overview-page"/>
|
|
<attainGoal name="site"/>
|
|
</goal>
|
|
|
|
|
|
<goal name="nightly-build" description="create a snapshot build and deploys it to the website">
|
|
|
|
<echo>Cleaning the directory</echo>
|
|
<attainGoal name="clean"/>
|
|
|
|
<echo>Compiling the codes</echo>
|
|
<attainGoal name="default"/>
|
|
|
|
<echo>Building the bin and src bundle </echo>
|
|
<attainGoal name="dist:build"/>
|
|
|
|
<echo>Creating deploy "site" </echo>
|
|
<attainGoal name="site:deploy"/>
|
|
|
|
</goal>
|
|
|
|
<goal name="reports:site">
|
|
<attainGoal name="site"/>
|
|
</goal>
|
|
|
|
|
|
</project>
|
|
|