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