You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by br...@apache.org on 2005/10/03 06:49:26 UTC
svn commit: r293235 - in
/maven/components/trunk/maven-core/src/main/java/org/apache/maven:
DefaultMaven.java execution/MavenExecutionResponse.java
lifecycle/DefaultLifecycleExecutor.java
Author: brett
Date: Sun Oct 2 21:49:21 2005
New Revision: 293235
URL: http://svn.apache.org/viewcvs?rev=293235&view=rev
Log:
PR: MNG-844, MNG-1073
o aggregating goal that forks a lifecycle should run reactor over projects
o don't show reactor summary if an aggregation goal was run that didn't fork a lifecycle.
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionResponse.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java?rev=293235&r1=293234&r2=293235&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java Sun Oct 2 21:49:21 2005
@@ -229,7 +229,7 @@
{
logFailure( response, exception, null );
- if ( rm.hasMultipleProjects() )
+ if ( rm.hasMultipleProjects() && response.executedMultipleProjects() )
{
writeReactorSummary( rm );
}
@@ -600,7 +600,7 @@
if ( diagnoser.canDiagnose( error ) )
{
message = diagnoser.diagnose( error );
-
+
// first one wins.
break;
}
@@ -644,7 +644,7 @@
if ( diagnoser.canDiagnose( error ) )
{
message = diagnoser.diagnose( error );
-
+
// first one wins.
break;
}
@@ -675,10 +675,6 @@
line();
}
- getLogger().info( "BUILD FAILURE" );
-
- line();
-
stats( r.getStart(), r.getFinish() );
line();
@@ -686,7 +682,7 @@
protected void logSuccess( MavenExecutionResponse r, ReactorManager rm )
{
- if ( rm.hasMultipleProjects() )
+ if ( rm.hasMultipleProjects() && r.executedMultipleProjects() )
{
writeReactorSummary( rm );
}
Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionResponse.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionResponse.java?rev=293235&r1=293234&r2=293235&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionResponse.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionResponse.java Sun Oct 2 21:49:21 2005
@@ -30,13 +30,15 @@
private Date finish;
+ private boolean executedMultipleProjects;
+
// ----------------------------------------------------------------------
// Execution failure
// ----------------------------------------------------------------------
public boolean isExecutionFailure()
{
- return ( exception != null );
+ return exception != null;
}
// ----------------------------------------------------------------------
@@ -75,5 +77,15 @@
public void setFinish( Date finish )
{
this.finish = finish;
+ }
+
+ public boolean executedMultipleProjects()
+ {
+ return executedMultipleProjects;
+ }
+
+ public void setExecutedMultipleProjects( boolean executedMultipleProjects )
+ {
+ this.executedMultipleProjects = executedMultipleProjects;
}
}
Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java?rev=293235&r1=293234&r2=293235&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java Sun Oct 2 21:49:21 2005
@@ -37,10 +37,10 @@
import org.apache.maven.monitor.event.MavenEvents;
import org.apache.maven.plugin.MojoExecution;
import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.plugin.PluginManager;
import org.apache.maven.plugin.PluginManagerException;
import org.apache.maven.plugin.PluginNotFoundException;
-import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.plugin.descriptor.MojoDescriptor;
import org.apache.maven.plugin.descriptor.PluginDescriptor;
import org.apache.maven.plugin.lifecycle.Execution;
@@ -73,6 +73,7 @@
* @author <a href="mailto:brett@apache.org">Brett Porter</a>
* @version $Id: DefaultLifecycleExecutor.java,v 1.16 2005/03/04 09:04:25
* jdcasey Exp $
+ * @todo because of aggregation, we ended up with cli-ish stuff in here (like line() and the project logging, without much of the event handling)
*/
public class DefaultLifecycleExecutor
extends AbstractLogEnabled
@@ -150,7 +151,7 @@
artifactHandlerManager.addHandlers( handlers );
}
- executeTaskSegments( taskSegments, rm, session, rootProject, dispatcher );
+ executeTaskSegments( taskSegments, rm, session, rootProject, dispatcher, response );
if ( ReactorManager.FAIL_AT_END.equals( rm.getFailureBehavior() ) && rm.hasBuildFailures() )
{
@@ -198,7 +199,8 @@
}
private void executeTaskSegments( List taskSegments, ReactorManager rm, MavenSession session,
- MavenProject rootProject, EventDispatcher dispatcher )
+ MavenProject rootProject, EventDispatcher dispatcher,
+ MavenExecutionResponse response )
throws PluginNotFoundException, MojoExecutionException, ArtifactResolutionException,
LifecycleExecutionException, MojoFailureException
{
@@ -233,7 +235,7 @@
try
{
- executeGoal( task, session, rootProject );
+ executeGoal( task, session, rootProject, response );
}
catch ( MojoExecutionException e )
{
@@ -276,6 +278,8 @@
{
List sortedProjects = session.getSortedProjects();
+ response.setExecutedMultipleProjects( true );
+
// iterate over projects, and execute on each...
for ( Iterator projectIterator = sortedProjects.iterator(); projectIterator.hasNext(); )
{
@@ -305,7 +309,7 @@
try
{
- executeGoal( task, session, currentProject );
+ executeGoal( task, session, currentProject, response );
}
catch ( MojoExecutionException e )
{
@@ -484,7 +488,7 @@
return segments;
}
- private void executeGoal( String task, MavenSession session, MavenProject project )
+ private void executeGoal( String task, MavenSession session, MavenProject project, MavenExecutionResponse response )
throws LifecycleExecutionException, PluginNotFoundException, MojoExecutionException,
ArtifactResolutionException, MojoFailureException
{
@@ -492,32 +496,33 @@
{
// we have a lifecycle phase, so lets bind all the necessary goals
Map lifecycleMappings = constructLifecycleMappings( session, task, project );
- executeGoalWithLifecycle( task, session, lifecycleMappings, project );
+ executeGoalWithLifecycle( task, session, lifecycleMappings, project, response );
}
else
{
- executeStandaloneGoal( task, session, project );
+ executeStandaloneGoal( task, session, project, response );
}
}
private void executeGoalWithLifecycle( String task, MavenSession session, Map lifecycleMappings,
- MavenProject project )
+ MavenProject project, MavenExecutionResponse response )
throws ArtifactResolutionException, LifecycleExecutionException, MojoExecutionException, MojoFailureException
{
List goals = processGoalChain( task, lifecycleMappings );
- executeGoals( goals, session, project );
+ executeGoals( goals, session, project, response );
}
- private void executeStandaloneGoal( String task, MavenSession session, MavenProject project )
+ private void executeStandaloneGoal( String task, MavenSession session, MavenProject project,
+ MavenExecutionResponse response )
throws ArtifactResolutionException, LifecycleExecutionException, MojoExecutionException, MojoFailureException
{
// guaranteed to come from the CLI and not be part of a phase
MojoDescriptor mojoDescriptor = getMojoDescriptor( task, session, project, task, true );
- executeGoals( Collections.singletonList( new MojoExecution( mojoDescriptor ) ), session, project );
+ executeGoals( Collections.singletonList( new MojoExecution( mojoDescriptor ) ), session, project, response );
}
- private void executeGoals( List goals, MavenSession session, MavenProject project )
+ private void executeGoals( List goals, MavenSession session, MavenProject project, MavenExecutionResponse response )
throws LifecycleExecutionException, MojoExecutionException, ArtifactResolutionException, MojoFailureException
{
for ( Iterator i = goals.iterator(); i.hasNext(); )
@@ -528,7 +533,7 @@
if ( mojoDescriptor.getExecutePhase() != null || mojoDescriptor.getExecuteGoal() != null )
{
- forkLifecycle( mojoDescriptor, session, project );
+ forkLifecycle( mojoDescriptor, session, project, response );
}
if ( mojoDescriptor.isRequiresReports() )
@@ -544,7 +549,7 @@
if ( descriptor.getExecutePhase() != null )
{
- forkLifecycle( descriptor, session, project );
+ forkLifecycle( descriptor, session, project, response );
}
}
}
@@ -692,12 +697,42 @@
return reports;
}
- private void forkLifecycle( MojoDescriptor mojoDescriptor, MavenSession session, MavenProject project )
+ private void forkLifecycle( MojoDescriptor mojoDescriptor, MavenSession session, MavenProject project,
+ MavenExecutionResponse response )
throws LifecycleExecutionException, MojoExecutionException, ArtifactResolutionException, MojoFailureException
{
PluginDescriptor pluginDescriptor = mojoDescriptor.getPluginDescriptor();
getLogger().info( "Preparing " + pluginDescriptor.getGoalPrefix() + ":" + mojoDescriptor.getGoal() );
+ if ( mojoDescriptor.isAggregator() )
+ {
+ response.setExecutedMultipleProjects( true );
+
+ for ( Iterator i = session.getSortedProjects().iterator(); i.hasNext(); )
+ {
+ MavenProject reactorProject = (MavenProject) i.next();
+
+ line();
+
+ getLogger().info( "Building " + reactorProject.getName() );
+
+ line();
+
+ forkProjectLifecycle( mojoDescriptor, session, reactorProject, response );
+ }
+ }
+ else
+ {
+ forkProjectLifecycle( mojoDescriptor, session, project, response );
+ }
+ }
+
+ private void forkProjectLifecycle( MojoDescriptor mojoDescriptor, MavenSession session, MavenProject project,
+ MavenExecutionResponse response )
+ throws ArtifactResolutionException, LifecycleExecutionException, MojoExecutionException, MojoFailureException
+ {
+ PluginDescriptor pluginDescriptor = mojoDescriptor.getPluginDescriptor();
+
String targetPhase = mojoDescriptor.getExecutePhase();
Map lifecycleMappings = null;
@@ -754,13 +789,13 @@
MavenProject executionProject = new MavenProject( project );
if ( targetPhase != null )
{
- executeGoalWithLifecycle( targetPhase, session, lifecycleMappings, executionProject );
+ executeGoalWithLifecycle( targetPhase, session, lifecycleMappings, executionProject, response );
}
else
{
String goal = mojoDescriptor.getExecuteGoal();
MojoDescriptor desc = getMojoDescriptor( pluginDescriptor, goal );
- executeGoals( Collections.singletonList( new MojoExecution( desc ) ), session, executionProject );
+ executeGoals( Collections.singletonList( new MojoExecution( desc ) ), session, executionProject, response );
}
project.setExecutionProject( executionProject );
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org