Author: skygo
Date: Mon Jul 15 23:54:01 2013
New Revision: 1503525
URL: http://svn.apache.org/r1503525
Log:
WIP on aggregator site.
only a few artifact for plugin code A1 and shared code A2 configured.
Need custom for skins (no release date)
asf pom not handler
Added:
maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckAggregatorsSiteMojo.java
- copied, changed from r1503479,
maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckSourceReleaseMojo.java
Modified:
maven/sandbox/trunk/dist-tools/dist-tool-plugin/pom.xml
maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/AbstractDistCheckMojo.java
maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/ConfigurationLineInfo.java
maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/resources/db/mavendb.txt
Modified: maven/sandbox/trunk/dist-tools/dist-tool-plugin/pom.xml
URL:
http://svn.apache.org/viewvc/maven/sandbox/trunk/dist-tools/dist-tool-plugin/pom.xml?rev=1503525&r1=1503524&r2=1503525&view=diff
==============================================================================
--- maven/sandbox/trunk/dist-tools/dist-tool-plugin/pom.xml (original)
+++ maven/sandbox/trunk/dist-tools/dist-tool-plugin/pom.xml Mon Jul 15 23:54:01
2013
@@ -278,6 +278,7 @@
<reports>
<report>check-site</report>
<report>check-source-release</report>
+ <report>check-aggregator</report>
</reports>
</reportSet>
<reportSet>
Modified:
maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/AbstractDistCheckMojo.java
URL:
http://svn.apache.org/viewvc/maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/AbstractDistCheckMojo.java?rev=1503525&r1=1503524&r2=1503525&view=diff
==============================================================================
---
maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/AbstractDistCheckMojo.java
(original)
+++
maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/AbstractDistCheckMojo.java
Mon Jul 15 23:54:01 2013
@@ -262,6 +262,9 @@ public abstract class AbstractDistCheckM
/**
* Log and add Error line to logs.txt if not configured to ignore the
artifact+version
*
+ * @param cli
+ * @param version
+ * @param ignore
* @param error
*/
protected void addErrorLine( ConfigurationLineInfo cli, String version,
List<String> ignore, String error )
Modified:
maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/ConfigurationLineInfo.java
URL:
http://svn.apache.org/viewvc/maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/ConfigurationLineInfo.java?rev=1503525&r1=1503524&r2=1503525&view=diff
==============================================================================
---
maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/ConfigurationLineInfo.java
(original)
+++
maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/ConfigurationLineInfo.java
Mon Jul 15 23:54:01 2013
@@ -41,7 +41,7 @@ class ConfigurationLineInfo
private final String artifactId;
private final String forceVersion;
-
+ private String aggregateSite;
private Metadata metadata;
public ConfigurationLineInfo( String[] infos )
@@ -52,6 +52,7 @@ class ConfigurationLineInfo
this.artifactId = null;
this.forceVersion = null;
+ this.aggregateSite = null;
}
public ConfigurationLineInfo( ConfigurationLineInfo group, String[] infos )
@@ -61,9 +62,23 @@ class ConfigurationLineInfo
this.srcBin = group.isSrcBin();
this.artifactId = infos[0];
- this.forceVersion = ( infos.length > 1 ) ? infos[1] : null;
+ this.forceVersion = ( infos.length > 1 && !infos[1].startsWith( "A") )
? infos[1] : null;
+ this.aggregateSite = null;
+ for ( String info : infos )
+ {
+ if ( info.startsWith( "A" ) )
+ {
+ this.aggregateSite = info;
+ }
+ }
+
}
+ public String getAggregatedCode()
+ {
+ return aggregateSite;
+ }
+
public String getForcedVersion()
{
return forceVersion;
@@ -130,7 +145,8 @@ class ConfigurationLineInfo
{
SimpleDateFormat dateFormatter = new SimpleDateFormat(
"yyyyMMddkkmmss" );
Date f = dateFormatter.parse(
metadata.getVersioning().getLastUpdated() );
- SimpleDateFormat dateFormattertarget = new SimpleDateFormat(
"dd-MM-yyyy" );
+ // inverted for check aggregator
+ SimpleDateFormat dateFormattertarget = new SimpleDateFormat(
"yyyy-MM-dd" );
return dateFormattertarget.format( f );
}
catch ( ParseException ex )
Copied:
maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckAggregatorsSiteMojo.java
(from r1503479,
maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckSourceReleaseMojo.java)
URL:
http://svn.apache.org/viewvc/maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckAggregatorsSiteMojo.java?p2=maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckAggregatorsSiteMojo.java&p1=maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckSourceReleaseMojo.java&r1=1503479&r2=1503525&rev=1503525&view=diff
==============================================================================
---
maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckSourceReleaseMojo.java
(original)
+++
maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckAggregatorsSiteMojo.java
Mon Jul 15 23:54:01 2013
@@ -20,15 +20,14 @@ package org.apache.maven.dist.tools;
*/
import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Iterator;
+import java.util.Collections;
+import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Locale;
+import java.util.Map;
-import org.apache.maven.doxia.markup.HtmlMarkup;
import org.apache.maven.doxia.sink.Sink;
-import org.apache.maven.doxia.sink.SinkEventAttributeSet;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.Parameter;
@@ -44,14 +43,28 @@ import org.jsoup.select.Elements;
*
* @author skygo
*/
-@Mojo( name = "check-source-release", requiresProject = false )
-public class DistCheckSourceReleaseMojo
+@Mojo( name = "check-aggregator", requiresProject = false )
+public class DistCheckAggregatorsSiteMojo
extends AbstractDistCheckMojo
{
private static final String DIST_AREA =
"http://www.apache.org/dist/maven/";
//private static final String DIST_SVNPUBSUB =
"https://dist.apache.org/repos/dist/release/maven/";
+ private static final Map<String, Object[]> HARDCODEDAGGREGATEREF;
+ static
+ {
+ Map<String, Object[]> aMap = new HashMap<>();
+ aMap.put( "A1", new Object[]
+ {
+ "http://maven.apache.org/plugins/", "Plugins", 2, 3
+ } );
+ aMap.put( "A2", new Object[]
+ {
+ "http://maven.apache.org/shared/", "Shared", 1, 2
+ } );
+ HARDCODEDAGGREGATEREF = Collections.unmodifiableMap( aMap );
+ }
/**
* Ignore dist failure for <code>artifactId</code> or
<code>artifactId:version</code>
*/
@@ -61,93 +74,47 @@ public class DistCheckSourceReleaseMojo
@Override
public String getOutputName()
{
- return "dist-tool-checksourcerelease";
+ return "dist-tool-checkaggregator";
}
@Override
public String getName( Locale locale )
{
- return "Disttool> Source Release";
+ return "Disttool> Aggregator Check";
}
@Override
public String getDescription( Locale locale )
{
- return "Verification of source release";
+ return "Verification aggregators";
}
- private static class DistCheckSourceRelease
+ private static class DistCheckAggregatorSite
extends AbstractCheckResult
{
- private List<String> central;
- private List<String> dist;
- private List<String> distOlder;
-
- public DistCheckSourceRelease( ConfigurationLineInfo r, String version
)
+ private String versionAggr;
+ private String dateAggr;
+
+ public DistCheckAggregatorSite( ConfigurationLineInfo r, String
version )
{
super( r, version );
}
- private void setMissingDistSourceRelease( List<String> checkRepos )
- {
- dist = checkRepos;
- }
-
- private void setMissingCentralSourceRelease( List<String> checkRepos )
+ private void setAggregatedVersion( String ownText )
{
- central = checkRepos;
+ this.versionAggr = ownText;
}
- private void setDistOlderSourceRelease( List<String> checkRepos )
+ private void setAggregatedDate( String ownText )
{
- distOlder = checkRepos;
+ this.dateAggr = ownText;
}
}
- private final List<DistCheckSourceRelease> results = new LinkedList<>();
+ private final Map<String, List<DistCheckAggregatorSite>> results = new
HashMap<>();
- private static class DirectoryStatistics
- {
- final String directory;
- int artifactsCount = 0;
- int centralMissing = 0;
- int distError = 0;
- int distMissing = 0;
- int distOlder = 0;
-
- public DirectoryStatistics( String directory )
- {
- this.directory = directory;
- }
-
- public boolean contains( DistCheckSourceRelease csr )
- {
- return csr.getConfigurationLine().getDirectory().equals( directory
);
- }
- public void addArtifact( DistCheckSourceRelease result )
- {
- artifactsCount++;
- if ( !result.central.isEmpty() )
- {
- centralMissing++;
- }
- if ( !result.dist.isEmpty() || !result.distOlder.isEmpty() )
- {
- distError++;
- }
- if ( !result.dist.isEmpty() )
- {
- distMissing++;
- }
- if ( !result.distOlder.isEmpty() )
- {
- distOlder++;
- }
- }
- }
-
- private void reportLine( Sink sink, DistCheckSourceRelease csr )
+ private void reportLine( Sink sink, DistCheckAggregatorSite csr )
{
ConfigurationLineInfo cli = csr.getConfigurationLine();
@@ -161,107 +128,32 @@ public class DistCheckSourceReleaseMojo
sink.link( cli.getMetadataFileURL( repoBaseUrl ) );
sink.rawText( csr.getVersion() );
sink.link_();
- sink.tableCell_();
-
- // DATE column
- sink.tableCell();
- sink.rawText( csr.getConfigurationLine().getReleaseFromMetadata() );
- sink.tableCell_();
-
- // central column
- sink.tableCell();
- sink.link( cli.getBaseURL( repoBaseUrl, "" ) );
- sink.text( "artifact" );
- sink.link_();
- sink.text( "/" );
- sink.link( cli.getVersionnedFolderURL( repoBaseUrl, csr.getVersion() )
);
- sink.text( csr.getVersion() );
- sink.link_();
- sink.text( "/" );
- if ( csr.central.isEmpty() )
+ if ( csr.getVersion().equals( csr.versionAggr ) )
{
iconSuccess( sink );
}
else
{
- iconWarning( sink );
- }
- for ( String missing : csr.central )
- {
- sink.lineBreak();
iconError( sink );
- sink.rawText( missing );
+ sink.rawText( csr.versionAggr );
}
sink.tableCell_();
- // dist column
+ // DATE column
sink.tableCell();
- String directory = cli.getDirectory() + ( cli.isSrcBin() ? ( "/" +
csr.getVersion() + "/source" ) : "" );
- sink.link( DIST_AREA + directory );
- sink.text( directory );
- sink.link_();
- sink.text( "source-release" );
- if ( csr.dist.isEmpty() && csr.distOlder.isEmpty() )
+ sink.rawText( csr.getConfigurationLine().getReleaseFromMetadata() );
+ if ( csr.getConfigurationLine().getReleaseFromMetadata().equals(
csr.dateAggr ) )
{
iconSuccess( sink );
}
else
{
- iconWarning( sink );
- }
- StringBuilder cliMissing = new StringBuilder();
- for ( String missing : csr.dist )
- {
- sink.lineBreak();
iconError( sink );
- sink.rawText( missing );
- if ( !csr.central.contains( missing ) )
- {
- // if the release distribution is in central repository, we
can get it from there...
- cliMissing.append( "\nwget " ).append(
cli.getVersionnedFolderURL( repoBaseUrl, csr.getVersion() ) ).
- append( "/" ).append( missing );
- cliMissing.append( "\nsvn add " ).append( missing );
- }
- }
- if ( !cliMissing.toString().isEmpty() )
- {
- sink.lineBreak();
- SinkEventAttributeSet atts = new SinkEventAttributeSet();
- sink.unknown( "pre", new Object[]
- {
- new Integer( HtmlMarkup.TAG_TYPE_START )
- }, atts );
- sink.text( cliMissing.toString() );
- sink.unknown( "pre", new Object[]
- {
- new Integer( HtmlMarkup.TAG_TYPE_END )
- }, null );
- }
-
- StringBuilder cliOlder = new StringBuilder();
- for ( String missing : csr.distOlder )
- {
- sink.lineBreak();
- iconRemove( sink );
- sink.rawText( missing );
- cliOlder.append( "\nsvn rm " ).append( missing );
- }
- if ( !cliOlder.toString().isEmpty() )
- {
- sink.lineBreak();
- SinkEventAttributeSet atts = new SinkEventAttributeSet();
- sink.unknown( "pre", new Object[]
- {
- new Integer( HtmlMarkup.TAG_TYPE_START )
- }, atts );
- sink.text( cliOlder.toString() );
- sink.unknown( "pre", new Object[]
- {
- new Integer( HtmlMarkup.TAG_TYPE_END )
- }, null );
+ sink.rawText( csr.dateAggr );
}
-
sink.tableCell_();
+ // central column
+
sink.tableRow_();
}
@@ -282,21 +174,7 @@ public class DistCheckSourceReleaseMojo
throw new MavenReportException( ex.getMessage(), ex );
}
- DirectoryStatistics stats = new DirectoryStatistics( "" ); // global
stats
-
- List<DirectoryStatistics> statistics = new ArrayList<>();
- DirectoryStatistics current = null;
- for ( DistCheckSourceRelease csr : results )
- {
- if ( ( current == null ) || !current.contains( csr ) )
- {
- current = new DirectoryStatistics(
csr.getConfigurationLine().getDirectory() );
- statistics.add( current );
- }
- current.addArtifact( csr );
- stats.addArtifact( csr );
- }
-
+
Sink sink = getSink();
sink.head();
sink.title();
@@ -326,195 +204,85 @@ public class DistCheckSourceReleaseMojo
sink.text( "Older artifacts exploration is Work In Progress..." );
sink.paragraph_();
sink.section1_();
- sink.table();
- sink.tableRow();
- sink.tableHeaderCell();
- sink.rawText( "groupId/artifactId: " + String.valueOf(
stats.artifactsCount ) );
- sink.tableHeaderCell_();
- sink.tableHeaderCell();
- sink.rawText( "LATEST" );
- sink.tableHeaderCell_();
- sink.tableHeaderCell();
- sink.rawText( "DATE" );
- sink.tableHeaderCell_();
- reportStatisticsHeader( stats, sink );
- sink.tableRow_();
- Iterator<DirectoryStatistics> dirs = statistics.iterator();
- current = null;
-
- for ( DistCheckSourceRelease csr : results )
+ for ( String key : results.keySet() )
{
- if ( ( current == null ) || !current.contains( csr ) )
+ sink.paragraph();
+ sink.text( (String) HARDCODEDAGGREGATEREF.get( key )[1] );
+ sink.paragraph_();
+ sink.table();
+ sink.tableRow();
+ sink.tableHeaderCell();
+ sink.rawText( "LATEST" );
+ sink.tableHeaderCell_();
+ sink.tableHeaderCell();
+ sink.rawText( "DATE" );
+ sink.tableHeaderCell_();
+ sink.tableHeaderCell();
+ sink.rawText( "VERSION" );
+ sink.tableHeaderCell_();
+ sink.tableRow_();
+ for ( DistCheckAggregatorSite csr : results.get( key ) )
{
- current = dirs.next();
-
- sink.tableRow();
- sink.tableHeaderCell();
- // shorten groupid
- sink.rawText(
csr.getConfigurationLine().getGroupId().replaceAll( "org.apache.maven", "o.a.m"
) + ": "
- + String.valueOf( current.artifactsCount ) );
- sink.tableHeaderCell_();
- sink.tableHeaderCell();
- sink.rawText( " " );
- sink.tableHeaderCell_();
- sink.tableHeaderCell();
- sink.rawText( " " );
- sink.tableHeaderCell_();
- reportStatisticsHeader( current, sink );
- sink.tableRow_();
+ reportLine( sink, csr );
}
-
- reportLine( sink, csr );
+ sink.table_();
}
-
- sink.table_();
+
sink.body_();
sink.flush();
sink.close();
}
- private void reportStatisticsHeader( DirectoryStatistics current, Sink
sink )
- {
- sink.tableHeaderCell();
- sink.rawText( "central: " + String.valueOf( current.artifactsCount -
current.centralMissing ) );
- iconSuccess( sink );
- if ( current.centralMissing > 0 )
- {
- sink.rawText( "/" + String.valueOf( current.centralMissing ) );
- iconWarning( sink );
- }
- sink.tableHeaderCell_();
- sink.tableHeaderCell();
- sink.rawText( "dist: " + String.valueOf( current.artifactsCount -
current.distError ) );
- iconSuccess( sink );
- if ( current.distError > 0 )
- {
- sink.rawText( "/" + String.valueOf( current.distError ) );
- iconWarning( sink );
- sink.rawText( "= " + String.valueOf( current.distMissing ) );
- iconError( sink );
- sink.rawText( "/" + String.valueOf( current.distOlder ) );
- iconRemove( sink );
- }
- sink.tableHeaderCell_();
- }
+
- /**
- * Report a pattern for an artifact source release.
- *
- * @param artifact artifact name
- * @return regex
- */
- protected static String getSourceReleasePattern( String artifact )
- {
- /// not the safest
- return "^" + artifact + "-[0-9].*source-release.*$";
- }
- private Elements selectLinks( String repourl )
- throws IOException
+ private void checkAggregate( ConfigurationLineInfo cli ,
+ DistCheckAggregatorSite r, Object[] inf ) throws IOException
{
try
{
- Document doc = Jsoup.connect( repourl ).get();
- return doc.select( "a[href]" );
- }
- catch ( IOException ioe )
- {
- throw new IOException( "IOException while reading " + repourl, ioe
);
- }
- }
-
- private List<String> checkContainsOld( String url, ConfigurationLineInfo
cli, String version )
- throws IOException
- {
- Elements links = selectLinks( url );
-
- List<String> retrievedFile = new LinkedList<>();
- for ( Element e : links )
- {
- String art = e.attr( "href" );
- if ( art.matches( getSourceReleasePattern( cli.getArtifactId() ) )
)
- {
- retrievedFile.add( e.attr( "href" ) );
- }
- }
-
- List<String> expectedFiles = cli.getExpectedFilenames( version, true );
-
- retrievedFile.removeAll( expectedFiles );
-
- if ( !retrievedFile.isEmpty() )
- {
- // write the following output in red so it's more readable in
jenkins console
- addErrorLine( cli, version, ignoreDistFailures,
- "Older version than " + version + " for " +
cli.getArtifactId() + " still available in "
- + url );
- for ( String sourceItem : retrievedFile )
- {
- addErrorLine( cli, version, ignoreDistFailures, " > " +
sourceItem + " <" );
+ Document doc = Jsoup.connect( (String) inf[0] ).get();
+ Elements a = doc.select( "tr > td > a[href]:not(.externalLink)" );
+ for ( Element e : a )
+ {
+ // skins do not have release date
+
+ String art = e.attr( "href" );
+ if ( art.contains( cli.getArtifactId() ) )
+ {
+ r.setAggregatedVersion( e.parent().parent().child( (
Integer ) inf[2] ).ownText() );
+ r.setAggregatedDate( e.parent().parent().child( ( Integer
) inf[3] ).ownText() );
+ }
}
}
-
- return retrievedFile;
- }
-
- /**
- * Check that url points to a directory index containing expected release
files
- * @param url
- * @param cli
- * @param version
- * @return missing files
- * @throws IOException
- */
- private List<String> checkDirectoryIndex( String url,
ConfigurationLineInfo cli, String version, boolean dist )
- throws IOException
- {
- List<String> retrievedFile = new LinkedList<>();
- Elements links = selectLinks( url );
- for ( Element e : links )
- {
- retrievedFile.add( e.attr( "href" ) );
- }
-
- List<String> missingFiles;
- // initialize missing files with expected release file names
- missingFiles = cli.getExpectedFilenames( version, dist );
-
- // removed retrieved files
- missingFiles.removeAll( retrievedFile );
-
- if ( !missingFiles.isEmpty() )
+ catch ( IOException ioe )
{
- addErrorLine( cli, version, ignoreDistFailures, "Missing file for
" + cli.getArtifactId() + " in " + url );
- for ( String sourceItem : missingFiles )
- {
- addErrorLine( cli, version, ignoreDistFailures, " > " +
sourceItem + " <" );
- }
+ throw new IOException( "IOException while reading " + (String)
inf[0] , ioe );
}
-
- return missingFiles;
}
-
+
+
@Override
void checkArtifact( ConfigurationLineInfo configLine, String version )
throws MojoExecutionException
{
try
{
- DistCheckSourceRelease result = new DistCheckSourceRelease(
configLine, version );
- results.add( result );
-
- // central
- String centralUrl = configLine.getVersionnedFolderURL(
repoBaseUrl, version );
- result.setMissingCentralSourceRelease( checkDirectoryIndex(
centralUrl, configLine, version, false ) );
-
- // dist
- String distUrl =
- DIST_AREA + configLine.getDirectory() + (
configLine.isSrcBin() ? ( "/" + version + "/source" ) : "" );
- result.setMissingDistSourceRelease( checkDirectoryIndex( distUrl,
configLine, version, true ) );
- result.setDistOlderSourceRelease( checkContainsOld( distUrl,
configLine, version ) );
+ DistCheckAggregatorSite result = new DistCheckAggregatorSite(
configLine, version );
+
+ if ( configLine.getAggregatedCode() != null )
+ {
+ if ( results.get( configLine.getAggregatedCode() ) == null )
+ {
+ results.put( configLine.getAggregatedCode(), new
LinkedList<DistCheckAggregatorSite>() );
+ }
+ results.get( configLine.getAggregatedCode() ).add( result );
+ checkAggregate( configLine, result, HARDCODEDAGGREGATEREF.get(
configLine.getAggregatedCode() ) );
+
+
+ }
+
}
catch ( IOException ex )
{
Modified:
maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/resources/db/mavendb.txt
URL:
http://svn.apache.org/viewvc/maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/resources/db/mavendb.txt?rev=1503525&r1=1503524&r2=1503525&view=diff
==============================================================================
---
maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/resources/db/mavendb.txt
(original)
+++
maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/resources/db/mavendb.txt
Mon Jul 15 23:54:01 2013
@@ -41,19 +41,19 @@ plugins org.apache.maven.plugins
maven-changelog-plugin
maven-changes-plugin
maven-checkstyle-plugin
- maven-clean-plugin
- maven-compiler-plugin
+ maven-clean-plugin A1
+ maven-compiler-plugin A1
maven-dependency-plugin
- maven-deploy-plugin
+ maven-deploy-plugin A1
maven-doap-plugin
maven-docck-plugin
- maven-ear-plugin
+ maven-ear-plugin A1
maven-eclipse-plugin
maven-ejb-plugin
maven-gpg-plugin
maven-help-plugin
maven-idea-plugin
- maven-install-plugin
+ maven-install-plugin A1
maven-invoker-plugin
maven-jar-plugin
maven-jarsigner-plugin
@@ -69,7 +69,7 @@ plugins org.apache.maven.plugins
maven-reactor-plugin
maven-remote-resources-plugin
maven-repository-plugin
- maven-resources-plugin
+ maven-resources-plugin A1
maven-scm-publish-plugin
maven-shade-plugin
maven-site-plugin
@@ -79,7 +79,7 @@ plugins org.apache.maven.plugins
maven-verifier-plugin
maven-war-plugin
release org.apache.maven.release
- maven-release 2.4.1
+ maven-release 2.4.1 A1
reporting org.apache.maven.reporting
maven-reporting-api
maven-reporting-exec
@@ -97,7 +97,7 @@ shared org.apache.maven.shared
maven-dependency-tree
maven-doxia-tools
maven-filtering
- maven-invoker
+ maven-invoker A2
maven-jarsigner
maven-model-converter
maven-repository-builder
@@ -110,7 +110,7 @@ shared org.apache.maven.shared
maven-shared-utils
maven-verifier
shared org.apache.maven
- maven-archiver
+ maven-archiver A2
skins org.apache.maven.skins
maven-application-skin
maven-classic-skin