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/09/29 11:55:40 UTC

svn commit: r292411 - in /maven/components/trunk: maven-core/src/main/java/org/apache/maven/cli/ maven-core/src/main/java/org/apache/maven/execution/ maven-core/src/main/java/org/apache/maven/lifecycle/ maven-project/src/main/java/org/apache/maven/proj...

Author: brett
Date: Thu Sep 29 02:55:25 2005
New Revision: 292411

URL: http://svn.apache.org/viewcvs?rev=292411&view=rev
Log:
PR: MNG-1011
add default goal handling

Added:
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/NoGoalsSpecifiedException.java   (with props)
Modified:
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/cli/MavenCli.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/cli/MavenCli.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/cli/MavenCli.java?rev=292411&r1=292410&r2=292411&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/cli/MavenCli.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/cli/MavenCli.java Thu Sep 29 02:55:25 2005
@@ -42,8 +42,8 @@
 import org.apache.maven.profiles.ProfileManager;
 import org.apache.maven.reactor.ReactorException;
 import org.apache.maven.settings.MavenSettingsBuilder;
-import org.apache.maven.settings.Settings;
 import org.apache.maven.settings.RuntimeInfo;
+import org.apache.maven.settings.Settings;
 import org.codehaus.classworlds.ClassWorld;
 import org.codehaus.plexus.PlexusContainerException;
 import org.codehaus.plexus.component.repository.exception.ComponentLifecycleException;
@@ -231,15 +231,6 @@
             }
         }
 
-        // TODO: this should be in default maven, and should accommodate default goals
-        if ( request.getGoals().isEmpty() )
-        {
-            System.err.println( "You must specify at least one goal. Try 'install'" );
-
-            cliManager.displayHelp();
-            return 1;
-        }
-
         MavenExecutionResponse response;
         try
         {
@@ -285,8 +276,8 @@
             }
             else
             {
-                System.out.println( "WARNING: Alternate user settings file: " + userSettingsPath +
-                    " is invalid. Using default path." );
+                System.out.println(
+                    "WARNING: Alternate user settings file: " + userSettingsPath + " is invalid. Using default path." );
             }
         }
 
@@ -356,10 +347,8 @@
         }
     }
 
-    private static MavenExecutionRequest createRequest( CommandLine commandLine,
-                                                        Settings settings,
-                                                        EventDispatcher eventDispatcher,
-                                                        LoggerManager loggerManager,
+    private static MavenExecutionRequest createRequest( CommandLine commandLine, Settings settings,
+                                                        EventDispatcher eventDispatcher, LoggerManager loggerManager,
                                                         ProfileManager profileManager )
         throws ComponentLookupException
     {

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java?rev=292411&r1=292410&r2=292411&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java Thu Sep 29 02:55:25 2005
@@ -51,7 +51,8 @@
     private boolean usingPOMsFromFilesystem;
 
     public MavenSession( PlexusContainer container, Settings settings, ArtifactRepository localRepository,
-                         EventDispatcher eventDispatcher, ReactorManager reactorManager, List goals, String executionRootDir )
+                         EventDispatcher eventDispatcher, ReactorManager reactorManager, List goals,
+                         String executionRootDir )
     {
         this.container = container;
 
@@ -67,7 +68,7 @@
 
         this.executionRootDir = executionRootDir;
     }
-    
+
     public Map getPluginContext( PluginDescriptor pluginDescriptor, MavenProject project )
     {
         return reactorManager.getPluginContext( pluginDescriptor, project );
@@ -140,7 +141,7 @@
     {
         this.usingPOMsFromFilesystem = usingPOMsFromFilesystem;
     }
-    
+
     public boolean isUsingPOMsFromFilesystem()
     {
         return usingPOMsFromFilesystem;

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=292411&r1=292410&r2=292411&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 Thu Sep 29 02:55:25 2005
@@ -110,7 +110,16 @@
     {
         MavenProject rootProject = rm.getTopLevelProject();
 
-        List taskSegments = segmentTaskListByAggregationNeeds( session.getGoals(), session, rootProject );
+        List goals = session.getGoals();
+
+        if ( goals.isEmpty() && rootProject != null )
+        {
+            String goal = rootProject.getDefaultGoal();
+            if ( goal != null )
+            {
+                goals = Collections.singletonList( goal );
+            }
+        }
 
         MavenExecutionResponse response = new MavenExecutionResponse();
 
@@ -118,6 +127,13 @@
 
         try
         {
+            if ( goals.isEmpty() )
+            {
+                throw new NoGoalsSpecifiedException( "You must specify at least one goal. Try 'install'" );
+            }
+
+            List taskSegments = segmentTaskListByAggregationNeeds( goals, session, rootProject );
+
             // TODO: probably don't want to do all this up front
             for ( Iterator i = session.getSortedProjects().iterator(); i.hasNext(); )
             {
@@ -163,6 +179,10 @@
         catch ( InvalidVersionSpecificationException e )
         {
             throw new LifecycleExecutionException( "Unable to initialise extensions", e );
+        }
+        catch ( NoGoalsSpecifiedException e )
+        {
+            response.setException( e );
         }
         finally
         {

Added: maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/NoGoalsSpecifiedException.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/NoGoalsSpecifiedException.java?rev=292411&view=auto
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/NoGoalsSpecifiedException.java (added)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/NoGoalsSpecifiedException.java Thu Sep 29 02:55:25 2005
@@ -0,0 +1,32 @@
+package org.apache.maven.lifecycle;
+
+/*
+ * Copyright 2001-2005 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ */
+
+/**
+ * Exception indicating there were no goals given.
+ *
+ * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ * @version $Id$
+ */
+public class NoGoalsSpecifiedException
+    extends Exception
+{
+    public NoGoalsSpecifiedException( String message )
+    {
+        super( message );
+    }
+}

Propchange: maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/NoGoalsSpecifiedException.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/NoGoalsSpecifiedException.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java?rev=292411&r1=292410&r2=292411&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java Thu Sep 29 02:55:25 2005
@@ -1463,4 +1463,9 @@
     {
         this.executionRoot = executionRoot;
     }
+
+    public String getDefaultGoal()
+    {
+        return getBuild() != null ? getBuild().getDefaultGoal() : null;
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org