| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| |
| Copyright 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. |
| --> |
| |
| <!-- $Rev$ $Date$ --> |
| |
| <project default="new" |
| xmlns:j="jelly:core" |
| xmlns:u="jelly:util" |
| xmlns:ant="jelly:ant" |
| xmlns:maven="jelly:maven" |
| xmlns:define="jelly:define" |
| xmlns:modules="local:modules" |
| xmlns:gscm="g:scm"> |
| |
| |
| <goal name="new0"> |
| <maven:reactor basedir="${basedir}" includes="tranql/tranql/project.xml" |
| excludes="" goals="multiproject:install-callback" banner="tranql" ignoreFailures="false" /> |
| </goal> |
| |
| <goal name="new00"> |
| <maven:reactor basedir="${basedir}" includes="tranql/connector/project.xml,tranql/vendor/*/*/project.xml,tranql/derby/*/project.xml" |
| excludes="" goals="multiproject:install-callback" banner="tranql-connector" ignoreFailures="false" /> |
| </goal> |
| |
| <goal name="new1"> |
| <maven:reactor basedir="${basedir}" includes="modules/*/project.xml,plugins/*/project.xml" |
| goals="multiproject:install-callback" banner="geronimo and geronimo-plugins" ignoreFailures="false" /> |
| </goal> |
| |
| <goal name="new2"> |
| <maven:reactor basedir="${basedir}" includes="openejb/modules/core/project.xml,openejb/modules/pkgen-builder/project.xml,openejb/modules/openejb-builder/project.xml" |
| excludes="" goals="multiproject:install-callback" banner="openejb" ignoreFailures="false" /> |
| </goal> |
| |
| <goal name="new3"> |
| <maven:reactor basedir="${basedir}" includes="applications/*/project.xml,applications/daytrader/derby/project.xml" |
| excludes="" goals="multiproject:install-callback" banner="applications" ignoreFailures="false" /> |
| </goal> |
| |
| <goal name="new4"> |
| <maven:reactor basedir="${basedir}" includes="configs/*/project.xml" |
| excludes="" goals="multiproject:install-callback" banner="configurations" ignoreFailures="false" /> |
| </goal> |
| |
| <goal name="new5"> |
| <maven:reactor basedir="${basedir}" includes="assemblies/*/project.xml" |
| excludes="" goals="multiproject:install-callback" banner="assemblies" ignoreFailures="false" /> |
| </goal> |
| |
| <goal name="new"> |
| <attainGoal name="new0"/> |
| <attainGoal name="new00"/> |
| <attainGoal name="new1"/> |
| <attainGoal name="new2"/> |
| <attainGoal name="new3"/> |
| <attainGoal name="new4"/> |
| <attainGoal name="new5"/> |
| </goal> |
| |
| <!-- ============= --> |
| <!-- New m: goals --> |
| <!-- ============= --> |
| |
| <!-- |
| | The main goals for multi project build are: |
| | |
| | m:default or m:build |
| | Executes default build for all projects |
| | |
| | m:clean |
| | Deletes the 'target' directory in all projects |
| | |
| | m:clean-repo |
| | Deletes the local repository artifacts of ActiveMQ, Geronimo, OpenEJB, and TranQL |
| | |
| | m:rebuild |
| | Same as m:clean m:default |
| | |
| | m:rebuild-all |
| | Same as m:clean m:clean-repo m:default and it includes geronimo spec modules |
| | |
| | m:checkout or m:co |
| | Checks out OpenEJB for non-OpenEJB Committers |
| | |
| | m:committer-checkout or m:cco |
| | Checks out OpenEJB for OpenEJB Committers |
| | |
| | m:update |
| | Updates Geronimo and OpenEJB |
| | |
| | m:fresh-checkout |
| | BECAREFUL: Deletes checkout of OpenEJB and checks it out again |
| | |
| | m:cfresh-checkout |
| | BECAREFUL: Deletes checkout of OpenEJB and checks it out again |
| | |
| | |
| | In addition to the above we support a -Dmodules command line option which is a comma |
| | seperated list of module names (ie. common, core, ...) |
| --> |
| |
| <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="m:rebuild-all" prereqs="m:clean,m:clean-repo,m:default"/> |
| <goal name="m:rebuild" prereqs="m:clean,m:default"/> |
| |
| <goal name="m:build-all" prereqs="m:default"/> |
| <goal name="m:build" prereqs="m:default"/> |
| <goal name="m:default" prereqs="m:init"> |
| <!-- don't run the active mq tests they take way too long and don't complete successfully --> |
| <!-- <u:available file="${basedir}/activemq"> |
| <mkdir dir="${basedir}/activemq/modules/core/target/test-reports/"/> |
| <ant:touch file="${basedir}/activemq/modules/core/target/test-reports/tstamp"/> |
| </u:available> --> |
| <j:set var="goal" value="default"/> |
| <attainGoal name="multiproject:goal"/> |
| </goal> |
| |
| <goal name="m:clean-all" prereqs="m:clean"/> |
| <goal name="m:clean" prereqs="m: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:fileset> |
| </ant:delete> |
| <ant:echo></ant:echo> |
| </j:forEach> |
| |
| <ant:echo>+----------------------------------------</ant:echo> |
| <ant:echo>| Cleaning: ${distDir} </ant:echo> |
| <ant:echo>+----------------------------------------</ant:echo> |
| <ant:delete dir="${distDir}"/> |
| <ant:echo></ant:echo> |
| </goal> |
| |
| <goal name="m:clean-repo" prereqs="m:init"> |
| <ant:echo>+----------------------------------------</ant:echo> |
| <ant:echo>| Cleaning: repo </ant:echo> |
| <ant:echo>+----------------------------------------</ant:echo> |
| <!--delete dir="${maven.repo.local}/activemq"/--> |
| <delete dir="${maven.repo.local}/geronimo"/> |
| <!--delete dir="${maven.repo.local}/howl"/--> |
| <delete dir="${maven.repo.local}/openejb"/> |
| <!--<delete dir="${maven.repo.local}/tranql"/>--> |
| <!-- AMM: specs are no longer in main tree |
| <j:if test="${context.getVariable('geronimo.all') == 'true'}"> |
| <delete dir="${maven.repo.local}/org.apache.geronimo.specs"/> |
| </j:if> |
| --> |
| </goal> |
| |
| <goal name="m:test" prereqs="m:init"> |
| <j:set var="goal" value="test"/> |
| <attainGoal name="multiproject:goal"/> |
| </goal> |
| |
| <goal name="m:eclipse" prereqs="m:init"> |
| <j:set var="goal" value="eclipse"/> |
| <attainGoal name="multiproject:goal"/> |
| <echo>Fixing up xmlbeans classpath in .classpath files...</echo> |
| <replace dir="${basedir}" |
| value="<classpathentry kind="lib" path="target/xmlbeans-classes">" |
| token="<classpathentry kind="src" path="target/xmlbeans-classes">"> |
| <include name="**/.classpath"/> |
| </replace> |
| </goal> |
| |
| <goal name="m:jar:deploy" prereqs="m:init"> |
| <j:set var="goal" value="jar:deploy"/> |
| <attainGoal name="multiproject:goal"/> |
| </goal> |
| |
| <goal name="m:intellij" prereqs="m:idea"/> |
| <goal name="m:idea" prereqs="m:init"> |
| <!--include the specs --> |
| <!--j:set var="maven.multiproject.includes" value="${maven.multiproject.includes},specs/*/project.xml"/--> |
| <attainGoal name="idea:multiproject"/> |
| </goal> |
| |
| <goal name="m:build:start"> |
| <j:set var="goal" value="build:start"/> |
| <attainGoal name="multiproject:goal"/> |
| </goal> |
| |
| <!-- ========= --> |
| <!-- SCM goals --> |
| <!-- ========= --> |
| <define:taglib uri="g:scm"> |
| <j:if test="${context.getVariable('dest') == null}"> |
| <j:set var="dest" value="${basedir}"/> |
| </j:if> |
| <define:tag name="checkout"> |
| <ant:cvs command="checkout -P" |
| quiet="${maven.scm.cvs.quiet}" |
| cvsRsh="ssh" |
| cvsRoot="${root}" |
| dest="${dest}" |
| package="${module}" |
| failonerror="true" |
| /> |
| </define:tag> |
| <define:tag name="checkout-tag"> |
| <ant:cvs command="checkout -P" |
| quiet="${maven.scm.cvs.quiet}" |
| cvsRsh="ssh" |
| cvsRoot="${root}" |
| dest="${dest}" |
| package="${module}" |
| tag="${tag}" |
| failonerror="true" |
| /> |
| </define:tag> |
| <define:tag name="update"> |
| <echo message="updating ${dir}"/> |
| <ant:cvs command="update -P -d" |
| quiet="${maven.scm.cvs.quiet}" |
| cvsRsh="ssh" |
| dest="${dir}" |
| failonerror="true" |
| /> |
| </define:tag> |
| </define:taglib> |
| |
| <!-- ======================================= --> |
| <!-- Goals for use by non-OpenEJB committers --> |
| <!-- ======================================= --> |
| <goal name="m:co" prereqs="m:checkout"/> |
| <goal name="m:checkout"> |
| <ant:exec dir="${basedir}" executable="svn"> |
| <ant:arg line="checkout http://svn.codehaus.org/openejb/branches/v2_1_1/openejb2 openejb"/> |
| </ant:exec> |
| </goal> |
| |
| <!-- =================================== --> |
| <!-- Goals for use by OpenEJB committers --> |
| <!-- =================================== --> |
| <goal name="m:cco" prereqs="m:committer-checkout"/> |
| <goal name="m:committer-checkout"> |
| <ant:exec dir="${basedir}" executable="svn"> |
| <ant:arg line="checkout https://svn.codehaus.org/openejb/branches/v2_1_1/openejb2 openejb"/> |
| </ant:exec> |
| </goal> |
| |
| <goal name="m:update"> |
| <ant:exec dir="${basedir}" executable="svn"> |
| <ant:arg line="update"/> |
| </ant:exec> |
| <ant:exec dir="${basedir}/openejb" executable="svn"> |
| <ant:arg line="update"/> |
| </ant:exec> |
| </goal> |
| |
| <goal name="m:fresh-checkout"> |
| <delete dir="${basedir}/openejb"/> |
| <attainGoal name="m:checkout"/> |
| <ant:exec dir="${basedir}" executable="svn"> |
| <ant:arg line="update"/> |
| </ant:exec> |
| </goal> |
| |
| <goal name="m:cfresh-checkout"> |
| <delete dir="${basedir}/openejb"/> |
| <attainGoal name="m:committer-checkout"/> |
| <ant:exec dir="${basedir}" executable="svn"> |
| <ant:arg line="update"/> |
| </ant:exec> |
| </goal> |
| |
| <!--old style build starts here --> |
| <j:set var="release.id" value="${pom.standardToLegacyId(pom.id)}-${pom.currentVersion}"/> |
| <j:set var="distDir" value="target/${pom.groupId}-${pom.currentVersion}"/> |
| |
| |
| <!-- ======= --> |
| <!-- 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,openejb/modules"/> |
| </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="modules:reactor"> |
| <modules:reactor/> |
| </goal> |
| |
| <goal name="modules:default"> |
| <modules:reactor goals="default"/> |
| </goal> |
| |
| <goal name="modules:build"> |
| <modules:reactor goals="build"/> |
| </goal> |
| |
| <goal name="modules:test"> |
| <modules:reactor goals="test"/> |
| </goal> |
| |
| <goal name="modules:site"> |
| <modules:reactor goals="site"/> |
| </goal> |
| |
| <goal name="modules:eclipse"> |
| <modules:reactor goals="eclipse"/> |
| </goal> |
| |
| <goal name="modules:jar:deploy"> |
| <modules:reactor goals="jar:deploy"/> |
| </goal> |
| |
| <goal name="modules:javadoc"> |
| <modules:reactor goals="javadoc"/> |
| </goal> |
| |
| <goal name="modules:clover"> |
| <modules:reactor goals="clover.wrapper"/> |
| </goal> |
| |
| <goal name="modules:jar-deploy"> |
| <modules:reactor goals="jar:deploy"/> |
| </goal> |
| |
| <goal name="modules:java-src"> |
| <modules:reactor goals="java-src"/> |
| </goal> |
| |
| <goal name="modules:clean"> |
| <!-- DMB: don't know why we are cleaning this way when we could invoke clean on the submodules --> |
| <!-- DSS: because if you invoke clean on the children the sub projects try to resolve their dependencies --> |
| <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 file="${directory}/velocity.log" quiet="true" failonerror="false"/> |
| <ant:echo></ant:echo> |
| </j:forEach> |
| |
| <ant:echo>+----------------------------------------</ant:echo> |
| <ant:echo>| Cleaning: ${distDir} </ant:echo> |
| <ant:echo>+----------------------------------------</ant:echo> |
| <ant:delete dir="${distDir}"/> |
| </goal> |
| |
| <goal name="modules:clobber"> |
| <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>| Clobbering: ${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> |
| <ant:echo>+----------------------------------------</ant:echo> |
| <ant:echo>| Clobbering: ${distDir} </ant:echo> |
| <ant:echo>+----------------------------------------</ant:echo> |
| <ant:delete dir="${distDir}"/> |
| </goal> |
| |
| <preGoal name="clean:clean"> |
| <!-- Do not clean modules if are clobbering them --> |
| <j:if test="${clobbering != 'true'}"> |
| <attainGoal name="modules:clean"/> |
| </j:if> |
| </preGoal> |
| |
| <preGoal name="clobber"> |
| <j:set var="clobbering" value="true"/> |
| <attainGoal name="modules:clobber"/> |
| </preGoal> |
| |
| <goal name="default"> |
| <attainGoal name="modules:default"/> |
| </goal> |
| |
| <goal name="test"> |
| <attainGoal name="modules:test"/> |
| </goal> |
| |
| <goal name="eclipse"> |
| <attainGoal name="modules:eclipse"/> |
| </goal> |
| |
| <goal name="jar:deploy"> |
| <attainGoal name="modules:jar:deploy"/> |
| </goal> |
| |
| <goal name="java-src"> |
| <attainGoal name="modules:java-src"/> |
| |
| <ant:mkdir dir="${basedir}/target"/> |
| <ant:jar destfile="${basedir}/target/${pom.groupId}-${pom.currentVersion}-java-src.jar"> |
| <j:forEach var="module" items="${reactorProjects}"> |
| <j:set var="module.root" value="${module.file.parent}"/> |
| |
| <u:available file="${module.root}/target/${module.artifactId}-${module.currentVersion}-java-src.jar"> |
| <zipfileset src="${module.root}/target/${module.artifactId}-${module.currentVersion}-java-src.jar"/> |
| </u:available> |
| </j:forEach> |
| </ant:jar> |
| </goal> |
| |
| <goal name="plugins"> |
| <ant:echo>This step is no longer necessary. Simply use 'maven' to build the server.</ant:echo> |
| </goal> |
| |
| |
| |
| <!-- =============================== --> |
| <!-- Documentation & Site Generation --> |
| <!-- =============================== --> |
| |
| <goal name="javadoc"> |
| <attainGoal name="modules:javadoc"/> |
| </goal> |
| |
| <preGoal name="xdoc:jelly-transform"> |
| <attainGoal name="html2xdoc"/> |
| <attainGoal name="faq"/> |
| </preGoal> |
| |
| <!-- Turn off reports for the top-level project --> |
| <postGoal name="xdoc:register-reports"> |
| <attainGoal name="maven-license-plugin:deregister"/> |
| <attainGoal name="maven-checkstyle-plugin:deregister"/> |
| <attainGoal name="maven-pmd-plugin:deregister"/> |
| <attainGoal name="maven-simian-plugin:deregister"/> |
| <attainGoal name="maven-jdepend-plugin:deregister"/> |
| <attainGoal name="maven-jxr-plugin:deregister"/> |
| <attainGoal name="maven-javadoc-plugin:deregister"/> |
| <attainGoal name="maven-junit-report-plugin:deregister"/> |
| <attainGoal name="maven-clover-plugin:deregister"/> |
| |
| <!-- Run some useful top-level reports --> |
| <!--<attainGoal name="maven-changelog-plugin:deregister"/>--> |
| <!--<attainGoal name="maven-file-activity-plugin:deregister"/>--> |
| <!--<attainGoal name="maven-developer-activity-plugin:deregister"/>--> |
| </postGoal> |
| |
| <preGoal name="site"> |
| <attainGoal name="modules:aggregate:site"/> |
| </preGoal> |
| |
| <postGoal name="site"> |
| <j:set var="aggregate.dir" value="${basedir}/${distDir}/docs"/> |
| <!-- Copy project docs --> |
| <ant:echo>Copying project docs to ${aggregate.dir}...</ant:echo> |
| <ant:copy todir="${aggregate.dir}"> |
| <ant:fileset dir="${basedir}/target/docs"/> |
| </ant:copy> |
| </postGoal> |
| |
| <goal name="modules:aggregate:site" prereqs="modules:site" |
| description="Copy the generated websites of all the modules into the root project"> |
| |
| <ant:echo>Aggregating module site documentation...</ant:echo> |
| |
| <!-- Setup the target aggregation directory --> |
| <j:set var="aggregate.dir" value="${basedir}/${distDir}/docs"/> |
| <ant:mkdir dir="${aggregate.dir}"/> |
| |
| <j:forEach var="module" items="${reactorProjects}"> |
| <ant:echo>Processing ${module.id}...</ant:echo> |
| |
| <!-- Get the modules root directory --> |
| <j:set var="module.root" value="${module.file.parent}"/> |
| |
| <!-- Setup the target dir under docs --> |
| <j:set var="moduleDirName">${module.file.parentFile.name}</j:set> |
| <j:set var="moduleTypeDirName">${module.file.parentFile.parentFile.name}</j:set> |
| <j:set var="outputDir">${aggregate.dir}/${moduleTypeDirName}/${moduleDirName}</j:set> |
| |
| <!-- Copy module docs --> |
| <ant:echo>Copying docs to ${outputDir}...</ant:echo> |
| <ant:mkdir dir="${outputDir}"/> |
| <ant:copy todir="${outputDir}"> |
| <ant:fileset dir="${module.root}/target/docs"/> |
| </ant:copy> |
| </j:forEach> |
| </goal> |
| |
| <goal name="site:tocvs" |
| description="Creates the entire website and copies it to the local CVS repository so that it can be checked in to update the site"> |
| |
| <j:jelly xmlns="jelly:ant"> |
| |
| <j:if test="${empty(geronimo.cvs.docdir)}"> |
| <j:set var="geronimo.cvs.docdir" value="../incubator-site/build/site/projects/geronimo"/> |
| </j:if> |
| |
| <mkdir dir="${geronimo.cvs.docdir}"/> |
| <copy todir="${geronimo.cvs.docdir}"> |
| <fileset dir="${basedir}/${distDir}/docs"/> |
| </copy> |
| |
| </j:jelly> |
| </goal> |
| </project> |