Author: stephenc
Date: Thu Jan 20 14:28:18 2011
New Revision: 1061312
URL: http://svn.apache.org/viewvc?rev=1061312&view=rev
Log:
[MANTTASKS-211] Added support for launching Maven 3.0.x versions. Added some
documentation on the mvn task.
Added:
maven/ant-tasks/trunk/src/it/m2-in-ant-tasks-in-ant-run-plugin/
maven/ant-tasks/trunk/src/it/m2-in-ant-tasks-in-ant-run-plugin/build.xml
maven/ant-tasks/trunk/src/it/m2-in-ant-tasks-in-ant-run-plugin/invoker.properties
maven/ant-tasks/trunk/src/it/m2-in-ant-tasks-in-ant-run-plugin/pom.xml
maven/ant-tasks/trunk/src/it/m2-in-ant-tasks-in-ant-run-plugin/verify.bsh
maven/ant-tasks/trunk/src/it/m3-in-ant-tasks-in-ant-run-plugin/
maven/ant-tasks/trunk/src/it/m3-in-ant-tasks-in-ant-run-plugin/build.xml
maven/ant-tasks/trunk/src/it/m3-in-ant-tasks-in-ant-run-plugin/invoker.properties
maven/ant-tasks/trunk/src/it/m3-in-ant-tasks-in-ant-run-plugin/pom.xml
maven/ant-tasks/trunk/src/it/m3-in-ant-tasks-in-ant-run-plugin/verify.bsh
Modified:
maven/ant-tasks/trunk/src/main/java/org/apache/maven/artifact/ant/Mvn.java
maven/ant-tasks/trunk/src/site/apt/reference.apt
Added: maven/ant-tasks/trunk/src/it/m2-in-ant-tasks-in-ant-run-plugin/build.xml
URL:
http://svn.apache.org/viewvc/maven/ant-tasks/trunk/src/it/m2-in-ant-tasks-in-ant-run-plugin/build.xml?rev=1061312&view=auto
==============================================================================
--- maven/ant-tasks/trunk/src/it/m2-in-ant-tasks-in-ant-run-plugin/build.xml
(added)
+++ maven/ant-tasks/trunk/src/it/m2-in-ant-tasks-in-ant-run-plugin/build.xml
Thu Jan 20 14:28:18 2011
@@ -0,0 +1,19 @@
+<project name="maven-ant-tasks" default="test"
xmlns:artifact="urn:maven-artifact-ant" xmlns:test="urn:test-tasks">
+
+ <target name="initTaskDefs">
+ <xmlproperty file="../../../pom.xml" prefix="pom.xml" />
+
+ <path id="maven-ant-tasks.classpath"
path="../../maven-ant-tasks-${pom.xml.project.version}.jar" />
+ <typedef resource="org/apache/maven/artifact/ant/antlib.xml"
uri="urn:maven-artifact-ant"
+ classpathref="maven-ant-tasks.classpath"/>
+ </target>
+
+
+ <target name="test" depends="initTaskDefs">
+ <mkdir dir="${basedir}/target"/>
+ <artifact:mvn mavenVersion="2.2.1"
output="${basedir}/target/maven.version" fork="true">
+ <arg value="-version"/>
+ </artifact:mvn>
+ </target>
+
+</project>
\ No newline at end of file
Added:
maven/ant-tasks/trunk/src/it/m2-in-ant-tasks-in-ant-run-plugin/invoker.properties
URL:
http://svn.apache.org/viewvc/maven/ant-tasks/trunk/src/it/m2-in-ant-tasks-in-ant-run-plugin/invoker.properties?rev=1061312&view=auto
==============================================================================
---
maven/ant-tasks/trunk/src/it/m2-in-ant-tasks-in-ant-run-plugin/invoker.properties
(added)
+++
maven/ant-tasks/trunk/src/it/m2-in-ant-tasks-in-ant-run-plugin/invoker.properties
Thu Jan 20 14:28:18 2011
@@ -0,0 +1 @@
+invoker.goals = validate
Added: maven/ant-tasks/trunk/src/it/m2-in-ant-tasks-in-ant-run-plugin/pom.xml
URL:
http://svn.apache.org/viewvc/maven/ant-tasks/trunk/src/it/m2-in-ant-tasks-in-ant-run-plugin/pom.xml?rev=1061312&view=auto
==============================================================================
--- maven/ant-tasks/trunk/src/it/m2-in-ant-tasks-in-ant-run-plugin/pom.xml
(added)
+++ maven/ant-tasks/trunk/src/it/m2-in-ant-tasks-in-ant-run-plugin/pom.xml Thu
Jan 20 14:28:18 2011
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>it.ant-tasks</groupId>
+ <artifactId>ant-run</artifactId>
+ <packaging>pom</packaging>
+
+ <name>ant-run</name>
+ <version>0.10-SNAPSHOT</version>
+ <description>
+ Try to call the ant tasks through the ant run plugin.
+ </description>
+
+ <dependencies><!-- dependencies to be downloaded by ant tasks -->
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>1.3.2</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <finalName>testfile</finalName>
+
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <version>1.3</version><!-- uses Ant 1.7.1 by default -->
+ <executions>
+ <execution>
+ <id>run</id>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ <phase>validate</phase>
+ <configuration>
+ <tasks>
+ <ant antfile="build.xml"/>
+ </tasks>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
Added: maven/ant-tasks/trunk/src/it/m2-in-ant-tasks-in-ant-run-plugin/verify.bsh
URL:
http://svn.apache.org/viewvc/maven/ant-tasks/trunk/src/it/m2-in-ant-tasks-in-ant-run-plugin/verify.bsh?rev=1061312&view=auto
==============================================================================
--- maven/ant-tasks/trunk/src/it/m2-in-ant-tasks-in-ant-run-plugin/verify.bsh
(added)
+++ maven/ant-tasks/trunk/src/it/m2-in-ant-tasks-in-ant-run-plugin/verify.bsh
Thu Jan 20 14:28:18 2011
@@ -0,0 +1,30 @@
+import java.io.*;
+import java.util.*;
+import org.codehaus.plexus.util.*;
+
+try
+{
+ File outputFolder = new File( basedir, "target" );
+
+ File testFile = new File( outputFolder, "maven.version");
+ if ( !testFile.isFile() )
+ {
+ System.err.println( "Could not find generated file: " + testFile );
+ return false;
+ }
+ String version = IOUtil.toString(new FileInputStream(testFile));
+
+ if ( !version.contains( "Apache Maven 2.2.1" ) )
+ {
+ System.err.println( "Expected Apache Maven 2.2.1. Got version: " +
version );
+ return false;
+ }
+
+}
+catch( Throwable t )
+{
+ t.printStackTrace();
+ return false;
+}
+
+return true;
Added: maven/ant-tasks/trunk/src/it/m3-in-ant-tasks-in-ant-run-plugin/build.xml
URL:
http://svn.apache.org/viewvc/maven/ant-tasks/trunk/src/it/m3-in-ant-tasks-in-ant-run-plugin/build.xml?rev=1061312&view=auto
==============================================================================
--- maven/ant-tasks/trunk/src/it/m3-in-ant-tasks-in-ant-run-plugin/build.xml
(added)
+++ maven/ant-tasks/trunk/src/it/m3-in-ant-tasks-in-ant-run-plugin/build.xml
Thu Jan 20 14:28:18 2011
@@ -0,0 +1,19 @@
+<project name="maven-ant-tasks" default="test"
xmlns:artifact="urn:maven-artifact-ant" xmlns:test="urn:test-tasks">
+
+ <target name="initTaskDefs">
+ <xmlproperty file="../../../pom.xml" prefix="pom.xml" />
+
+ <path id="maven-ant-tasks.classpath"
path="../../maven-ant-tasks-${pom.xml.project.version}.jar" />
+ <typedef resource="org/apache/maven/artifact/ant/antlib.xml"
uri="urn:maven-artifact-ant"
+ classpathref="maven-ant-tasks.classpath"/>
+ </target>
+
+
+ <target name="test" depends="initTaskDefs">
+ <mkdir dir="${basedir}/target"/>
+ <artifact:mvn mavenVersion="3.0.2"
output="${basedir}/target/maven.version" fork="true">
+ <arg value="-version"/>
+ </artifact:mvn>
+ </target>
+
+</project>
\ No newline at end of file
Added:
maven/ant-tasks/trunk/src/it/m3-in-ant-tasks-in-ant-run-plugin/invoker.properties
URL:
http://svn.apache.org/viewvc/maven/ant-tasks/trunk/src/it/m3-in-ant-tasks-in-ant-run-plugin/invoker.properties?rev=1061312&view=auto
==============================================================================
---
maven/ant-tasks/trunk/src/it/m3-in-ant-tasks-in-ant-run-plugin/invoker.properties
(added)
+++
maven/ant-tasks/trunk/src/it/m3-in-ant-tasks-in-ant-run-plugin/invoker.properties
Thu Jan 20 14:28:18 2011
@@ -0,0 +1 @@
+invoker.goals = validate
Added: maven/ant-tasks/trunk/src/it/m3-in-ant-tasks-in-ant-run-plugin/pom.xml
URL:
http://svn.apache.org/viewvc/maven/ant-tasks/trunk/src/it/m3-in-ant-tasks-in-ant-run-plugin/pom.xml?rev=1061312&view=auto
==============================================================================
--- maven/ant-tasks/trunk/src/it/m3-in-ant-tasks-in-ant-run-plugin/pom.xml
(added)
+++ maven/ant-tasks/trunk/src/it/m3-in-ant-tasks-in-ant-run-plugin/pom.xml Thu
Jan 20 14:28:18 2011
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>it.ant-tasks</groupId>
+ <artifactId>ant-run</artifactId>
+ <packaging>pom</packaging>
+
+ <name>ant-run</name>
+ <version>0.10-SNAPSHOT</version>
+ <description>
+ Try to call the ant tasks through the ant run plugin.
+ </description>
+
+ <dependencies><!-- dependencies to be downloaded by ant tasks -->
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>1.3.2</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <finalName>testfile</finalName>
+
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <version>1.3</version><!-- uses Ant 1.7.1 by default -->
+ <executions>
+ <execution>
+ <id>run</id>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ <phase>validate</phase>
+ <configuration>
+ <tasks>
+ <ant antfile="build.xml"/>
+ </tasks>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
Added: maven/ant-tasks/trunk/src/it/m3-in-ant-tasks-in-ant-run-plugin/verify.bsh
URL:
http://svn.apache.org/viewvc/maven/ant-tasks/trunk/src/it/m3-in-ant-tasks-in-ant-run-plugin/verify.bsh?rev=1061312&view=auto
==============================================================================
--- maven/ant-tasks/trunk/src/it/m3-in-ant-tasks-in-ant-run-plugin/verify.bsh
(added)
+++ maven/ant-tasks/trunk/src/it/m3-in-ant-tasks-in-ant-run-plugin/verify.bsh
Thu Jan 20 14:28:18 2011
@@ -0,0 +1,30 @@
+import java.io.*;
+import java.util.*;
+import org.codehaus.plexus.util.*;
+
+try
+{
+ File outputFolder = new File( basedir, "target" );
+
+ File testFile = new File( outputFolder, "maven.version");
+ if ( !testFile.isFile() )
+ {
+ System.err.println( "Could not find generated file: " + testFile );
+ return false;
+ }
+ String version = IOUtil.toString(new FileInputStream(testFile));
+
+ if ( !version.contains( "Apache Maven 3.0.2" ) )
+ {
+ System.err.println( "Expected Apache Maven 3.0.1. Got version: " +
version );
+ return false;
+ }
+
+}
+catch( Throwable t )
+{
+ t.printStackTrace();
+ return false;
+}
+
+return true;
Modified:
maven/ant-tasks/trunk/src/main/java/org/apache/maven/artifact/ant/Mvn.java
URL:
http://svn.apache.org/viewvc/maven/ant-tasks/trunk/src/main/java/org/apache/maven/artifact/ant/Mvn.java?rev=1061312&r1=1061311&r2=1061312&view=diff
==============================================================================
--- maven/ant-tasks/trunk/src/main/java/org/apache/maven/artifact/ant/Mvn.java
(original)
+++ maven/ant-tasks/trunk/src/main/java/org/apache/maven/artifact/ant/Mvn.java
Thu Jan 20 14:28:18 2011
@@ -20,6 +20,7 @@ package org.apache.maven.artifact.ant;
*/
import java.io.File;
+import java.util.regex.Pattern;
import org.apache.maven.model.Dependency;
import org.apache.tools.ant.BuildException;
@@ -72,6 +73,14 @@ public class Mvn
if ( mavenHome == null )
{
+ Pattern oldMaven =
Pattern.compile("(2\\.0)|(2\\.0-.*)|(2\\.0\\.[1-9])");
+ if ( oldMaven.matcher( getMavenVersion() ).matches() )
+ {
+ throw new BuildException( "The requested Maven version '" +
getMavenVersion() + "' is prior to " +
+ "version '2.0.10'. In order to
launch the requested version you need to " +
+ "use a local Maven installation and
point to that installation with the " +
+ "mavenHome attribute." );
+ }
downloadAndConfigureMaven();
}
else
@@ -84,20 +93,23 @@ public class Mvn
private void downloadAndConfigureMaven()
{
- Dependency mavenCore = new Dependency();
- mavenCore.setGroupId( "org.apache.maven" );
- mavenCore.setArtifactId( "maven-core" );
- mavenCore.setVersion( getMavenVersion() );
+ Dependency apacheMaven = new Dependency();
+ apacheMaven.setGroupId( "org.apache.maven" );
+ apacheMaven.setArtifactId( "apache-maven" );
+ apacheMaven.setVersion( getMavenVersion() );
+ apacheMaven.setType( "pom" );
DependenciesTask depsTask = new DependenciesTask();
depsTask.addLocalRepository( getLocalRepository() );
depsTask.setProject( getProject() );
- depsTask.setPathId( "maven-core-dependencies" );
- depsTask.addDependency( mavenCore );
-
+ depsTask.setPathId( "apache-maven-dependencies" );
+ depsTask.addDependency( apacheMaven );
+ depsTask.setType( "pom,jar" );
+ depsTask.setPathType( "jar" );
+
depsTask.execute();
- this.setClasspath( (Path) getProject().getReference(
"maven-core-dependencies" ) );
+ this.setClasspath( (Path) getProject().getReference(
"apache-maven-dependencies" ) );
this.setClassname( "org.apache.maven.cli.MavenCli" );
}
Modified: maven/ant-tasks/trunk/src/site/apt/reference.apt
URL:
http://svn.apache.org/viewvc/maven/ant-tasks/trunk/src/site/apt/reference.apt?rev=1061312&r1=1061311&r2=1061312&view=diff
==============================================================================
--- maven/ant-tasks/trunk/src/site/apt/reference.apt (original)
+++ maven/ant-tasks/trunk/src/site/apt/reference.apt Thu Jan 20 14:28:18 2011
@@ -194,6 +194,25 @@
| <<<trim>>> | A boolean value to determine whether unnecessary
information should be removed from the POM. Defaults to <<<true>>>. | No
|
*------------------+--------------------------------------------------------------------------+--------------+
+* <<<{mvn}>>> <(since 2.0.10)>
+
+ This task will run a Maven process either from a specific Maven Home, or by
downloading the required version and
+ running from the local repository directly. The task extends th <<<java>>>
task with the following additional
+ attributes.
+
+*------------------+--------------------------------------------------------------------------+--------------+-------------+
+| <<Attribute>> | <<Description>>
| <<Required>> | << Since >> |
+*------------------+--------------------------------------------------------------------------+--------------+-------------+
+| <<<pom>>> | The pom.xml file to use. If not specified Maven will
look for a pom.xml in the current directory | No | 2.0.10 |
+*------------------+--------------------------------------------------------------------------+--------------+-------------+
+| <<<mavenHome>>> | The MAVEN_HOME of the version of Maven to launch. If not
specified then <<<mavenVersion>>> will control the version of Maven that is
launched. | No | 2.0.10 |
+*------------------+--------------------------------------------------------------------------+--------------+-------------+
+| <<<mavenVersion>>> | The version of Maven to launch. The required
dependencies will be resolved and Maven will be launched directly from the
local repository. There is no requirement to have Maven installed locally. This
is ignored if <<<mavenHome>>> is specified. The default value is 2.0.10. Prior
to Maven Ant Tasks 2.1.2 only Maven versions in the range <<<[2.0.10,2.2.1]>>>
could be launched. Since Maven Ant Tasks 2.1.2 the range has been extended to
<<<[2.0.10,3.0.2]>>> newer versions of Maven will probably also work but are
untested at this time.| No | 2.0.10 |
+*------------------+--------------------------------------------------------------------------+--------------+-------------+
+| <<<localRepository>>> | The location of the local repository to be used by
Maven. | No | 2.0.10 |
+*------------------+--------------------------------------------------------------------------+--------------+-------------+
+| <<<batchMode>>> | Whether to launch Maven in batch mode or not. Defaults to
<<<true>>>. | No | 2.0.10 |
+*------------------+--------------------------------------------------------------------------+--------------+-------------+
{Type} Reference