You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2012/10/01 20:21:54 UTC
svn commit: r1392495 - in /maven/shared/trunk/maven-invoker: ./
src/main/java/org/apache/maven/shared/invoker/
src/test/java/org/apache/maven/shared/invoker/
Author: rfscholte
Date: Mon Oct 1 18:21:53 2012
New Revision: 1392495
URL: http://svn.apache.org/viewvc?rev=1392495&view=rev
Log:
[MSHARED-187] Add option to execute a Maven build with alsoMake and alsoMakeDependents
Contributed by Lucien Weller
Reviewed, adjusted + tests by Robert Scholte
Modified:
maven/shared/trunk/maven-invoker/pom.xml
maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/DefaultInvocationRequest.java
maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/InvocationRequest.java
maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/MavenCommandLineBuilder.java
maven/shared/trunk/maven-invoker/src/test/java/org/apache/maven/shared/invoker/MavenCommandLineBuilderTest.java
Modified: maven/shared/trunk/maven-invoker/pom.xml
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-invoker/pom.xml?rev=1392495&r1=1392494&r2=1392495&view=diff
==============================================================================
--- maven/shared/trunk/maven-invoker/pom.xml (original)
+++ maven/shared/trunk/maven-invoker/pom.xml Mon Oct 1 18:21:53 2012
@@ -44,6 +44,12 @@ under the License.
<system>jira</system>
<url>http://jira.codehaus.org/browse/MSHARED/component/13271</url>
</issueManagement>
+
+ <contributors>
+ <contributor>
+ <name>Lucien Weller</name>
+ </contributor>
+ </contributors>
<dependencies>
<dependency>
Modified: maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/DefaultInvocationRequest.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/DefaultInvocationRequest.java?rev=1392495&r1=1392494&r2=1392495&view=diff
==============================================================================
--- maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/DefaultInvocationRequest.java (original)
+++ maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/DefaultInvocationRequest.java Mon Oct 1 18:21:53 2012
@@ -88,6 +88,12 @@ public class DefaultInvocationRequest
private String[] activatedReactorIncludes, activatedReactorExcludes;
+ private List<String> projects;
+
+ private boolean alsoMake;
+
+ private boolean alsoMakeDependents;
+
private boolean showVersion;
private String threads;
@@ -422,4 +428,55 @@ public class DefaultInvocationRequest
return this;
}
+ /**
+ * {@inheritDoc}
+ */
+ public List<String> getProjects()
+ {
+ return projects;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public InvocationRequest setProjects( List<String> projects )
+ {
+ this.projects = projects;
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public boolean isAlsoMake()
+ {
+ return alsoMake;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public InvocationRequest setAlsoMake( boolean alsoMake )
+ {
+ this.alsoMake = alsoMake;
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public boolean isAlsoMakeDependents()
+ {
+ return alsoMakeDependents;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public InvocationRequest setAlsoMakeDependents( boolean alsoMakeDependents )
+ {
+ this.alsoMakeDependents = alsoMakeDependents;
+ return this;
+ }
+
}
Modified: maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/InvocationRequest.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/InvocationRequest.java?rev=1392495&r1=1392494&r2=1392495&view=diff
==============================================================================
--- maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/InvocationRequest.java (original)
+++ maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/InvocationRequest.java Mon Oct 1 18:21:53 2012
@@ -84,6 +84,30 @@ public interface InvocationRequest
*/
public String[] getActivatedReactorExcludes();
+ /**
+ * A list of specified reactor projects to build instead of all projects.
+ * A project can be specified by [groupId]:artifactId or by its relative path.
+ *
+ * @return the list of projects to add to reactor build, otherwise {@code null}
+ * @since 2.0.12
+ */
+ public List<String> getProjects();
+
+ /**
+ * Get the value of the {@code also-make} argument.
+ *
+ * @return {@code true} if the argument {@code also-make} was specified, otherwise {@code false}
+ * @since 2.0.12
+ */
+ boolean isAlsoMake();
+
+ /**
+ * Get the value of the {@code also-make-dependents}
+ *
+ * @return {@code true} if the argument {@code also-make-dependents} was specified, otherwise {@code false}
+ * @since 2.0.12
+ */
+ boolean isAlsoMakeDependents();
/**
* Gets the debug mode of the Maven invocation. By default, Maven is executed in normal mode.
@@ -537,4 +561,34 @@ public interface InvocationRequest
* @since 2.0.12
*/
InvocationRequest setThreads( String threads );
+
+ /**
+ * Sets the reactor project list.
+ * Equivalent of {@code -P} or {@code --projects}
+ *
+ * @param projects the reactor project list
+ * @return This invocation request.
+ * @since 2.0.12
+ */
+ InvocationRequest setProjects( List<String> projects );
+
+ /**
+ * Enable the 'also make' mode.
+ * Equivalent of {@code -am} or {@code --also-make}
+ *
+ * @param alsoMake enable 'also make' mode
+ * @return This invocation request.
+ * @since 2.0.12
+ */
+ InvocationRequest setAlsoMake( boolean alsoMake );
+
+ /**
+ * Enable the 'also make dependents' mode.
+ * Equivalent of {@code -amd} or {@code --also-make-dependents}
+ *
+ * @param alsoMake enable 'also make' mode
+ * @return This invocation request.
+ * @since 2.0.12
+ */
+ InvocationRequest setAlsoMakeDependents( boolean alsoMakeDependents );
}
Modified: maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/MavenCommandLineBuilder.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/MavenCommandLineBuilder.java?rev=1392495&r1=1392494&r2=1392495&view=diff
==============================================================================
--- maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/MavenCommandLineBuilder.java (original)
+++ maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/MavenCommandLineBuilder.java Mon Oct 1 18:21:53 2012
@@ -398,6 +398,23 @@ public class MavenCommandLineBuilder
cli.createArg().setValue( "maven.reactor.excludes=" + StringUtils.join( excludes, "," ) );
}
}
+
+ List<String> projectList = request.getProjects();
+ if ( projectList != null )
+ {
+ cli.createArg().setValue( "-pl" );
+ cli.createArg().setValue( StringUtils.join( projectList.iterator(), "," ) );
+
+ if ( request.isAlsoMake() )
+ {
+ cli.createArg().setValue( "-am" );
+ }
+
+ if ( request.isAlsoMakeDependents() )
+ {
+ cli.createArg().setValue( "-amd" );
+ }
+ }
}
protected void setFlags( InvocationRequest request, Commandline cli )
@@ -450,7 +467,7 @@ public class MavenCommandLineBuilder
{
cli.createArg().setValue( "-V" );
}
- }
+ }
protected void setThreads( InvocationRequest request, Commandline cli )
{
Modified: maven/shared/trunk/maven-invoker/src/test/java/org/apache/maven/shared/invoker/MavenCommandLineBuilderTest.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-invoker/src/test/java/org/apache/maven/shared/invoker/MavenCommandLineBuilderTest.java?rev=1392495&r1=1392494&r2=1392495&view=diff
==============================================================================
--- maven/shared/trunk/maven-invoker/src/test/java/org/apache/maven/shared/invoker/MavenCommandLineBuilderTest.java (original)
+++ maven/shared/trunk/maven-invoker/src/test/java/org/apache/maven/shared/invoker/MavenCommandLineBuilderTest.java Mon Oct 1 18:21:53 2012
@@ -440,8 +440,6 @@ public class MavenCommandLineBuilderTest
tcb.setReactorBehavior( newRequest().activateReactor( null, null ), cli );
assertArgumentsPresent( cli, Collections.singleton( "-r" ) );
-
-
}
public void testActivateReactorIncludesExcludes()
@@ -464,6 +462,68 @@ public class MavenCommandLineBuilderTest
assertArgumentsPresent( cli, args );
}
+
+ public void testAlsoMake()
+ {
+ logTestStart();
+
+ TestCommandLineBuilder tcb = new TestCommandLineBuilder();
+ Commandline cli = new Commandline();
+
+ tcb.setReactorBehavior( newRequest().setAlsoMake( true ), cli );
+
+ //-am is only useful with -pl
+ assertArgumentsNotPresent( cli, Collections.singleton( "-am" ) );
+ }
+
+ public void testProjectsAndAlsoMake()
+ {
+ logTestStart();
+
+ TestCommandLineBuilder tcb = new TestCommandLineBuilder();
+ Commandline cli = new Commandline();
+
+ tcb.setReactorBehavior( newRequest().setProjects( Collections.singletonList( "proj1" ) ).setAlsoMake( true ), cli );
+
+ assertArgumentsPresentInOrder( cli, "-pl", "proj1", "-am" );
+ }
+
+ public void testAlsoMakeDependents()
+ {
+ logTestStart();
+
+ TestCommandLineBuilder tcb = new TestCommandLineBuilder();
+ Commandline cli = new Commandline();
+
+ tcb.setReactorBehavior( newRequest().setAlsoMakeDependents( true ), cli );
+
+ //-amd is only useful with -pl
+ assertArgumentsNotPresent( cli, Collections.singleton( "-amd" ) );
+ }
+
+ public void testProjectsAndAlsoMakeDependents()
+ {
+ logTestStart();
+
+ TestCommandLineBuilder tcb = new TestCommandLineBuilder();
+ Commandline cli = new Commandline();
+
+ tcb.setReactorBehavior( newRequest().setProjects( Collections.singletonList( "proj1" ) ).setAlsoMakeDependents( true ), cli );
+
+ assertArgumentsPresentInOrder( cli, "-pl", "proj1", "-amd" );
+ }
+
+ public void testProjectsAndAlsoMakeAndAlsoMakeDependents()
+ {
+ logTestStart();
+
+ TestCommandLineBuilder tcb = new TestCommandLineBuilder();
+ Commandline cli = new Commandline();
+
+ tcb.setReactorBehavior( newRequest().setProjects( Collections.singletonList( "proj1" ) ).setAlsoMake( true ).setAlsoMakeDependents( true ), cli );
+
+ assertArgumentsPresentInOrder( cli, "-pl", "proj1", "-am", "-amd" );
+ }
public void testShouldSetStrictChecksumPolityFlagFromRequest()
{