You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jv...@apache.org on 2008/04/16 02:41:02 UTC
svn commit: r648474 - /maven/components/trunk/build.xml
Author: jvanzyl
Date: Tue Apr 15 17:41:00 2008
New Revision: 648474
URL: http://svn.apache.org/viewvc?rev=648474&view=rev
Log:
o if you have m2_home it does not to be named after the version
o works with a symlinked m2_home
Modified:
maven/components/trunk/build.xml
Modified: maven/components/trunk/build.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/build.xml?rev=648474&r1=648473&r2=648474&view=diff
==============================================================================
--- maven/components/trunk/build.xml (original)
+++ maven/components/trunk/build.xml Tue Apr 15 17:41:00 2008
@@ -19,20 +19,6 @@
<project default="all" basedir="." xmlns:artifact="urn:maven-artifact-ant">
- <description>
- The first time you build Maven from source, you have to build Maven without Maven.
- This Ant script builds a minimal Maven, just enough to re-launch Maven again in this
- directory and generate an installation assembly. Then we extract the assembly and
- re-run the Maven build one more time, this time with the full generated Maven.
-
- To run this script, you must set the M2_HOME environment variable or the maven.home
- property to the location that should contain Maven. This directory *must* be named
- after the maven version you want to install, e.g. /usr/local/apache-maven-2.1-SNAPSHOT.
-
- You can set the maven.repo.local property to specify a custom location for your
- local repository for the bootstrap process.
- </description>
-
<target name="initTaskDefs">
<xmlproperty file="pom.xml" prefix="pom.xml" />
<path id="maven-ant-tasks.classpath" path="maven-ant-tasks-2.0.8.jar"/>
@@ -47,26 +33,11 @@
<fail unless="maven.home" message="You must set the M2_HOME environment variable or specify a maven.home property to this Ant script"/>
</target>
- <target name="checkMavenHome" depends="isMavenHomeSet">
+ <target name="init" depends="isMavenHomeSet">
+ <xmlproperty prefix="pom" file="pom.xml"/>
<basename file="${maven.home}" property="maven.home.basename"/>
<dirname file="${maven.home}" property="maven.home.dirname"/>
- <xmlproperty prefix="pom" file="pom.xml"/>
<property name="maven.home.basename.expected" value="apache-maven-${pom.project.version}"/>
- <property name="maven.home.recommended" location="${maven.home.dirname}/${maven.home.basename.expected}"/>
- <condition property="build.failed">
- <not>
- <equals arg1="${maven.home.basename}" arg2="${maven.home.basename.expected}"/>
- </not>
- </condition>
- <fail if="build.failed">
- The Maven install destination directory must end with '${maven.home.basename.expected}'.
- Your M2_HOME was = ${maven.home}
- We recommend = ${maven.home.recommended}
- </fail>
- <echo message="maven.home=${maven.home}"/>
- </target>
-
- <target name="init" depends="checkMavenHome">
</target>
<target name="clean-bootstrap" description="cleans up generated bootstrap classes">
@@ -75,7 +46,7 @@
<target name="pull" depends="init" unless="skip.pull">
<property name="verbose" value="false"/>
- <property name="bootstrap.repository" value="${basedir}/bootstrap/repository"/>
+ <property name="bootstrap.repository" value="${basedir}/bootstrap-repository"/>
<!-- Pull the dependencies that Maven needs to build -->
<copy file="pom.xml" tofile="dependencies.xml"/>
<replace file="${basedir}/dependencies.xml" token="<!--start-->" value="<!--"/>
@@ -94,10 +65,8 @@
</artifact:dependencies>
</target>
- <target name="generate-sources" depends="pull"
- description="generates Java sources from Modello mdo model files">
+ <target name="generate-sources" depends="pull" description="generates Java sources from Modello mdo model files">
<mkdir dir="bootstrap/target"/>
- <mkdir dir="bootstrap/lib"/>
<mkdir dir="bootstrap/target/generated-sources"/>
<macrodef name="modello-single-mode">
@@ -128,7 +97,6 @@
</macrodef>
<modello file="maven-model/src/main/mdo/maven.mdo" version="4.0.0"/>
- <!-- DGF TODO turn this into a big <apply> task? write a custom task? -->
<modello file="maven-lifecycle/src/main/mdo/maven-lifecycle.mdo"/>
<modello file="maven-plugin-api/src/main/mdo/lifecycle.mdo"/>
<modello file="maven-profile/src/main/mdo/profiles.mdo"/>
@@ -137,20 +105,11 @@
</target>
<target name="compile-boot" depends="generate-sources" description="compiles the bootstrap sources">
- <echo>
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
- COMPILE-BOOT
-
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- </echo>
-
<path id="sources">
<dirset dir=".">
<include name="bootstrap/target/generated-sources"/>
<include name="*/src/main/*"/>
<include name="maven-reporting/maven-reporting-api/src/main/*"/>
- <exclude name="maven-repository-tools/**"/>
<exclude name="maven-core-it-verifier/**"/>
</dirset>
</path>
@@ -173,29 +132,16 @@
</path>
</target>
- <target name="maven-compile" depends="compile-boot"
- description="compiles Maven using the bootstrap Maven, skipping automated tests">
-
- <echo>
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
- MAVEN-COMPILE
-
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- </echo>
-
+ <target name="maven-compile" depends="compile-boot" description="compiles Maven using the bootstrap Maven, skipping automated tests">
<java fork="true" classname="org.apache.maven.cli.MavenCli" failonerror="true">
<classpath refid="maven.classpath"/>
- <arg value="-e"/>
<arg value="-B"/>
<arg value="clean"/>
<arg value="install"/>
</java>
</target>
- <target name="maven-assembly" depends="maven-compile"
- description="generates the Maven installation assembly using the bootstrap Maven">
-
+ <target name="maven-assembly" depends="maven-compile" description="generates the Maven installation assembly using the bootstrap Maven">
<echo>
The new Maven distribution was created as part of the MAVEN-COMPILE step, above.
This goal just validates the presence of that distribution.
@@ -206,14 +152,21 @@
<available file="${maven.assembly}"/>
</not>
</condition>
- <fail if="build.failed"
- message="Assembly task seemed to succeed, but couldn't find assembly file: ${maven.assembly}"/>
+ <fail if="build.failed" message="Assembly task seemed to succeed, but couldn't find assembly file: ${maven.assembly}"/>
</target>
- <target name="extract-assembly" depends="init,maven-assembly"
- description="extracts the maven assembly into maven.home">
+ <target name="extract-assembly" depends="init,maven-assembly" description="extracts the maven assembly into maven.home">
<echo>Extracting assembly to ${maven.home.dirname} ...</echo>
- <delete dir="${maven.home}"/>
+ <!-- Deleting the contents inside maven.home allow one to use symlinks for maven.home and still have this work. -->
+ <delete>
+ <fileset dir="${maven.home}">
+ <include name="bin"/>
+ <include name="boot"/>
+ <include name="conf"/>
+ <include name="lib"/>
+ <include name="*.txt"/>
+ </fileset>
+ </delete>
<unzip src="${maven.assembly}" dest="${maven.home.dirname}"/>
<chmod perm="+x">
<fileset dir="${maven.home}/bin">
@@ -225,17 +178,4 @@
<target name="all" depends="clean-bootstrap,init,extract-assembly"/>
- <target name="run-full-maven" depends="all"
- description="runs the full extracted Maven, now with tests">
- <property name="maven.goals" value="test"/>
- <java classname="org.codehaus.classworlds.Launcher" fork="true" failonerror="true">
- <classpath>
- <fileset dir="${maven.home}/core/boot" includes="plexus-classworlds-*.jar"/>
- </classpath>
- <sysproperty key="classworlds.conf" value="${maven.home}/bin/m2.conf"/>
- <sysproperty key="maven.home" value="${maven.home}"/>
- <arg value="-e"/>
- <arg line="${maven.goals}"/>
- </java>
- </target>
</project>