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/01 09:10:45 UTC

svn commit: r292935 - in /maven/components/trunk/maven-core/src/main/java/org/apache/maven: lifecycle/DefaultLifecycleExecutor.java plugin/DefaultPluginManager.java plugin/PluginManager.java

Author: brett
Date: Sat Oct  1 00:10:39 2005
New Revision: 292935

URL: http://svn.apache.org/viewcvs?rev=292935&view=rev
Log:
PR: MNG-1057
look for command line goals in the project declared plugins

Modified:
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginManager.java

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=292935&r1=292934&r2=292935&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 Sat Oct  1 00:10:39 2005
@@ -1144,14 +1144,14 @@
         StringTokenizer tok = new StringTokenizer( task, ":" );
         int numTokens = tok.countTokens();
 
-        // TODO: Add "&& canUsePrefix" to this boolean expression, and remove deprecation warning in next release.
         if ( numTokens == 2 )
         {
             if ( !canUsePrefix )
             {
-                getLogger().warn(
-                    "DEPRECATED: Mapped-prefix lookup of mojos are only supported from direct invocation. Please use specification of the form groupId:artifactId[:version]:goal instead. (Offending mojo: \'" +
-                        task + "\', invoked via: \'" + invokedVia + "\')" );
+                String msg = "DEPRECATED: Mapped-prefix lookup of mojos are only supported from direct invocation. " +
+                    "Please use specification of the form groupId:artifactId[:version]:goal instead. " +
+                    "(Offending mojo: \'" + task + "\', invoked via: \'" + invokedVia + "\')";
+                throw new LifecycleExecutionException( msg );
             }
 
             String prefix = tok.nextToken();
@@ -1159,16 +1159,9 @@
 
             // Steps for retrieving the plugin model instance:
             // 1. request directly from the plugin collector by prefix
-            try
-            {
-                pluginDescriptor = pluginManager.getPluginDescriptorForPrefix( prefix );
-            }
-            catch ( PluginManagerException e )
-            {
-                throw new LifecycleExecutionException(
-                    "Cannot resolve plugin-prefix: \'" + prefix + "\' from plugin collector.", e );
-            }
+            pluginDescriptor = pluginManager.getPluginDescriptorForPrefix( prefix );
 
+            // 2. look in the repository via search groups
             if ( pluginDescriptor == null )
             {
                 try
@@ -1181,8 +1174,7 @@
                         "Cannot resolve plugin-prefix: \'" + prefix + "\' from plugin mappings metadata.", e );
                 }
             }
-
-            if ( pluginDescriptor != null )
+            else
             {
                 plugin = new Plugin();
 
@@ -1191,7 +1183,34 @@
                 plugin.setVersion( pluginDescriptor.getVersion() );
             }
 
-            // 2. default to o.a.m.plugins and maven-<prefix>-plugin
+            // 3. search plugins in the current POM
+            if ( plugin == null )
+            {
+                for ( Iterator i = project.getBuildPlugins().iterator(); i.hasNext(); )
+                {
+                    Plugin buildPlugin = (Plugin) i.next();
+
+                    try
+                    {
+                        PluginDescriptor desc = pluginManager.verifyPlugin( buildPlugin, project, session.getSettings(),
+                                                                            session.getLocalRepository() );
+                        if ( prefix.equals( desc.getGoalPrefix() ) )
+                        {
+                            plugin = buildPlugin;
+                        }
+                    }
+                    catch ( PluginManagerException e )
+                    {
+                        throw new LifecycleExecutionException( "Internal error in the plugin manager", e );
+                    }
+                    catch ( PluginVersionResolutionException e )
+                    {
+                        throw new LifecycleExecutionException( "Error resolving plugin version", e );
+                    }
+                }
+            }
+
+            // 4. default to o.a.m.plugins and maven-<prefix>-plugin
             if ( plugin == null )
             {
                 plugin = new Plugin();

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java?rev=292935&r1=292934&r2=292935&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java Sat Oct  1 00:10:39 2005
@@ -131,7 +131,6 @@
     // ----------------------------------------------------------------------
 
     public PluginDescriptor getPluginDescriptorForPrefix( String prefix )
-        throws PluginManagerException
     {
         return pluginCollector.getPluginDescriptorForPrefix( prefix );
     }
@@ -310,18 +309,20 @@
         throws ArtifactResolutionException, PluginManagerException, MojoExecutionException
     {
         MojoDescriptor mojoDescriptor = mojoExecution.getMojoDescriptor();
-        
+
         // NOTE: I'm putting these checks in here, since this is the central point of access for 
         // anything that wants to execute a mojo.
-        if( mojoDescriptor.isProjectRequired() && !session.isUsingPOMsFromFilesystem() )
+        if ( mojoDescriptor.isProjectRequired() && !session.isUsingPOMsFromFilesystem() )
         {
-            throw new MojoExecutionException( "Cannot execute mojo: " + mojoDescriptor.getGoal() + ". It requires a project, but the build is not using one." ); 
+            throw new MojoExecutionException( "Cannot execute mojo: " + mojoDescriptor.getGoal() +
+                ". It requires a project, but the build is not using one." );
         }
-        
+
         if ( mojoDescriptor.isOnlineRequired() && session.getSettings().isOffline() )
         {
             // TODO: Should we error out, or simply warn and skip??
-            throw new MojoExecutionException( "Mojo: " + mojoDescriptor.getGoal() + " requires online mode for execution. Maven is currently offline." );
+            throw new MojoExecutionException( "Mojo: " + mojoDescriptor.getGoal() +
+                " requires online mode for execution. Maven is currently offline." );
         }
 
         if ( mojoDescriptor.isDependencyResolutionRequired() != null )
@@ -503,7 +504,7 @@
         PluginDescriptor pluginDescriptor = mojoDescriptor.getPluginDescriptor();
 
         PlexusContainer pluginContainer = getPluginContainer( pluginDescriptor );
-        
+
         // if this is the first time this plugin has been used, the plugin's container will only
         // contain the plugin's artifact in isolation; we need to finish resolving the plugin's
         // dependencies, and add them to the container.
@@ -519,10 +520,10 @@
         if ( plugin instanceof ContextEnabled )
         {
             Map pluginContext = session.getPluginContext( pluginDescriptor, project );
-            
+
             ( (ContextEnabled) plugin ).setPluginContext( pluginContext );
         }
-        
+
         plugin.setLog( mojoLogger );
 
         XmlPlexusConfiguration pomConfiguration;

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginManager.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginManager.java?rev=292935&r1=292934&r2=292935&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginManager.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginManager.java Sat Oct  1 00:10:39 2005
@@ -44,8 +44,7 @@
     MavenReport getReport( MavenProject project, MojoExecution mojoExecution, MavenSession session )
         throws PluginManagerException;
 
-    PluginDescriptor getPluginDescriptorForPrefix( String prefix )
-        throws PluginManagerException;
+    PluginDescriptor getPluginDescriptorForPrefix( String prefix );
 
     Plugin getPluginDefinitionForPrefix( String prefix, MavenSession session, MavenProject project )
         throws PluginManagerException;



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