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 07:38:20 UTC
svn commit: r648528 - /maven/components/branches/maven-2.0.x/build.xml
Author: jvanzyl
Date: Tue Apr 15 22:38:19 2008
New Revision: 648528
URL: http://svn.apache.org/viewvc?rev=648528&view=rev
Log:
o ant-based bootstrap
Added:
maven/components/branches/maven-2.0.x/build.xml (with props)
Added: maven/components/branches/maven-2.0.x/build.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/build.xml?rev=648528&view=auto
==============================================================================
--- maven/components/branches/maven-2.0.x/build.xml (added)
+++ maven/components/branches/maven-2.0.x/build.xml Tue Apr 15 22:38:19 2008
@@ -0,0 +1,188 @@
+<!--
+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="all" basedir="." xmlns:artifact="urn:maven-artifact-ant">
+
+ <target name="initTaskDefs">
+ <xmlproperty file="pom.xml" prefix="pom.xml" />
+ <path id="maven-ant-tasks.classpath" path="maven-ant-tasks-2.0.8.jar"/>
+ <typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="urn:maven-artifact-ant" classpathref="maven-ant-tasks.classpath"/>
+ </target>
+
+ <target name="isMavenHomeSet" depends="initTaskDefs">
+ <property environment="env"/>
+ <condition property="maven.home" value="${env.M2_HOME}">
+ <isset property="env.M2_HOME"/>
+ </condition>
+ <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="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"/>
+ <property name="maven.home.basename.expected" value="apache-maven-${pom.project.version}"/>
+ </target>
+
+ <target name="clean-bootstrap" description="cleans up generated bootstrap classes">
+ <delete dir="bootstrap"/>
+ </target>
+
+ <target name="pull" depends="init" unless="skip.pull">
+ <property name="verbose" value="false"/>
+ <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="<!--"/>
+ <replace file="${basedir}/dependencies.xml" token="<!--end-->" value="-->"/>
+ <artifact:pom file="${basedir}/dependencies.xml" id="pom"/>
+ <artifact:dependencies pathId="pom.pathid" filesetId="pom.fileset" verbose="${verbose}">
+ <!--
+ <localRepository path="${bootstrap.repository}"/>
+ -->
+ <pom refid="pom"/>
+ </artifact:dependencies>
+ <delete file="${basedir}/dependencies.xml"/>
+
+ <!-- Pull the dependencies for Modello -->
+ <artifact:dependencies pathId="modello.pathid" filesetId="modello.fileset" verbose="${verbose}">
+ <!--
+ <localRepository path="${bootstrap.repository}"/>
+ -->
+ <dependency groupId="org.codehaus.modello" artifactId="modello-maven-plugin" version="1.0-alpha-17"/>
+ </artifact:dependencies>
+ </target>
+
+ <target name="generate-sources" depends="pull" description="generates Java sources from Modello mdo model files">
+ <mkdir dir="bootstrap/target"/>
+ <mkdir dir="bootstrap/target/generated-sources"/>
+
+ <macrodef name="modello-single-mode">
+ <attribute name="file"/>
+ <attribute name="mode"/>
+ <attribute name="version"/>
+ <sequential>
+ <java fork="fork" classname="org.codehaus.modello.ModelloCli" failonerror="true">
+ <classpath refid="modello.pathid"/>
+ <arg file="@{file}"/>
+ <arg value="@{mode}"/>
+ <arg file="bootstrap/target/generated-sources"/>
+ <arg value="@{version}"/>
+ <arg value="false"/>
+ </java>
+ </sequential>
+ </macrodef>
+
+ <macrodef name="modello">
+ <attribute name="file"/>
+ <attribute name="version" default="1.0.0"/>
+ <sequential>
+ <echo taskname="modello" message="Generating sources for @{file}"/>
+ <modello-single-mode file="@{file}" version="@{version}" mode="java"/>
+ <modello-single-mode file="@{file}" version="@{version}" mode="xpp3-reader"/>
+ <modello-single-mode file="@{file}" version="@{version}" mode="xpp3-writer"/>
+ </sequential>
+ </macrodef>
+
+
+ <modello file="maven-model/src/main/mdo/maven.mdo" version="4.0.0"/>
+ <modello file="maven-plugin-descriptor/src/main/mdo/lifecycle.mdo"/>
+ <modello file="maven-plugin-registry/plugin-registry.mdo"/>
+ <modello file="maven-plugin-parameter-documenter/src/main/mdo/paramdoc.mdo"/>
+ <modello file="maven-profile/src/main/mdo/profiles.mdo"/>
+ <modello file="maven-settings/src/main/mdo/settings.mdo"/>
+ <modello file="maven-repository-metadata/src/main/mdo/metadata.mdo"/>
+ <modello file="maven-toolchain/src/main/mdo/toolchains.xml"/>
+ </target>
+
+ <target name="compile-boot" depends="generate-sources" description="compiles the bootstrap sources">
+ <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-core-it-verifier/**"/>
+ </dirset>
+ </path>
+
+ <mkdir dir="bootstrap/target/classes"/>
+ <javac destdir="bootstrap/target/classes" debug="${debug}">
+ <src refid="sources"/>
+ <classpath refid="pom.pathid"/>
+ </javac>
+
+ <!-- DGF generating a fake pom.properties so Maven thinks it has a version number -->
+ <mkdir dir="bootstrap/target/classes/META-INF/maven/org.apache.maven/maven-core"/>
+ <echo message="version=${pom.project.version}"
+ file="bootstrap/target/classes/META-INF/maven/org.apache.maven/maven-core/pom.properties"/>
+
+ <path id="maven.classpath">
+ <pathelement location="bootstrap/target/classes"/>
+ <path refid="sources"/>
+ <path refid="pom.pathid"/>
+ </path>
+ </target>
+
+ <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="-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">
+ <echo>
+ The new Maven distribution was created as part of the MAVEN-COMPILE step, above.
+ This goal just validates the presence of that distribution.
+ </echo>
+ <property name="maven.assembly" location="maven-distribution/target/${maven.home.basename.expected}-bin.zip"/>
+ <condition property="build.failed">
+ <not>
+ <available file="${maven.assembly}"/>
+ </not>
+ </condition>
+ <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">
+ <echo>Extracting assembly to ${maven.home.dirname} ...</echo>
+ <!-- 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">
+ <include name="mvn"/>
+ <include name="m2"/>
+ </fileset>
+ </chmod>
+ </target>
+
+ <target name="all" depends="clean-bootstrap,init,extract-assembly"/>
+
+</project>
Propchange: maven/components/branches/maven-2.0.x/build.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/branches/maven-2.0.x/build.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"