Index: maven-core/src/main/java/org/apache/maven/plugin/MavenPluginDiscoverer.java =================================================================== --- maven-core/src/main/java/org/apache/maven/plugin/MavenPluginDiscoverer.java (revision 169072) +++ maven-core/src/main/java/org/apache/maven/plugin/MavenPluginDiscoverer.java (working copy) @@ -47,6 +47,6 @@ public ComponentSetDescriptor createComponentDescriptors( Reader componentDescriptorConfiguration, String source ) throws PlexusConfigurationException { - return builder.build( componentDescriptorConfiguration ); + return builder.build( componentDescriptorConfiguration, source ); } } Index: maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java =================================================================== --- maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java (revision 169072) +++ maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java (working copy) @@ -19,13 +19,20 @@ */ public class PluginDescriptorBuilder { - public PluginDescriptor build( Reader reader ) + public PluginDescriptor build( Reader reader ) throws PlexusConfigurationException { + return build( reader, null ); + } + + public PluginDescriptor build( Reader reader, String source ) + throws PlexusConfigurationException + { PlexusConfiguration c = buildConfiguration( reader ); PluginDescriptor pluginDescriptor = new PluginDescriptor(); + pluginDescriptor.setSource( source ); pluginDescriptor.setGroupId( c.getChild( "groupId" ).getValue() ); pluginDescriptor.setArtifactId( c.getChild( "artifactId" ).getValue() ); pluginDescriptor.setVersion( c.getChild( "version" ).getValue() ); Index: maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptor.java =================================================================== --- maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptor.java (revision 169072) +++ maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptor.java (working copy) @@ -39,6 +39,8 @@ private String goalPrefix; + private String source; + // ---------------------------------------------------------------------- // // ---------------------------------------------------------------------- @@ -109,7 +111,7 @@ String id = constructPluginKey( groupId, artifactId, version ); if ( groupId == null || artifactId == null || version == null ) { - throw new IllegalStateException( "Plugin descriptor ID incomplete: " + id ); + throw new IllegalStateException( "Plugin descriptor ID incomplete: " + id + " in " + getSource() ); } return id; } @@ -174,4 +176,14 @@ { return version; } + + public void setSource( String source ) + { + this.source = source; + } + + public String getSource() + { + return source; + } }