You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2013/11/25 23:55:59 UTC

git commit: [SCM-736] updated plugin to use plugin-tools java 5 annotations

Updated Branches:
  refs/heads/master 0760079f1 -> 227f7a176


[SCM-736] updated plugin to use plugin-tools java 5 annotations

Project: http://git-wip-us.apache.org/repos/asf/maven-scm/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-scm/commit/227f7a17
Tree: http://git-wip-us.apache.org/repos/asf/maven-scm/tree/227f7a17
Diff: http://git-wip-us.apache.org/repos/asf/maven-scm/diff/227f7a17

Branch: refs/heads/master
Commit: 227f7a1761f5a37a04e94afca9eabfbc21c491d9
Parents: 0760079
Author: Hervé Boutemy <hb...@apache.org>
Authored: Mon Nov 25 23:55:56 2013 +0100
Committer: Hervé Boutemy <hb...@apache.org>
Committed: Mon Nov 25 23:55:56 2013 +0100

----------------------------------------------------------------------
 maven-scm-plugin/pom.xml                        | 41 ++++++++-----
 .../maven/scm/plugin/AbstractScmMojo.java       | 63 +++++++-------------
 .../org/apache/maven/scm/plugin/AddMojo.java    |  5 +-
 .../apache/maven/scm/plugin/BootstrapMojo.java  | 15 ++---
 .../org/apache/maven/scm/plugin/BranchMojo.java | 18 +++---
 .../apache/maven/scm/plugin/ChangeLogMojo.java  | 36 ++++-------
 .../scm/plugin/CheckLocalModificationsMojo.java | 33 +++++-----
 .../apache/maven/scm/plugin/CheckinMojo.java    | 18 +++---
 .../apache/maven/scm/plugin/CheckoutMojo.java   | 21 +++----
 .../org/apache/maven/scm/plugin/DefaultLog.java |  1 -
 .../org/apache/maven/scm/plugin/DiffMojo.java   | 22 +++----
 .../org/apache/maven/scm/plugin/EditMojo.java   |  5 +-
 .../org/apache/maven/scm/plugin/ExportMojo.java | 19 +++---
 .../org/apache/maven/scm/plugin/ListMojo.java   | 15 ++---
 .../org/apache/maven/scm/plugin/RemoveMojo.java |  9 ++-
 .../org/apache/maven/scm/plugin/StatusMojo.java |  5 +-
 .../org/apache/maven/scm/plugin/TagMojo.java    | 28 ++++-----
 .../org/apache/maven/scm/plugin/UnEditMojo.java |  5 +-
 .../org/apache/maven/scm/plugin/UpdateMojo.java | 25 +++-----
 .../maven/scm/plugin/UpdateSubprojectsMojo.java | 22 +++----
 .../apache/maven/scm/plugin/ValidateMojo.java   | 16 ++---
 21 files changed, 172 insertions(+), 250 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-scm/blob/227f7a17/maven-scm-plugin/pom.xml
----------------------------------------------------------------------
diff --git a/maven-scm-plugin/pom.xml b/maven-scm-plugin/pom.xml
index 2e337f8..199451f 100644
--- a/maven-scm-plugin/pom.xml
+++ b/maven-scm-plugin/pom.xml
@@ -42,7 +42,7 @@
 
   <properties>
     <mavenVersion>2.0.6</mavenVersion>
-    <mavenPluginVersion>2.9</mavenPluginVersion>
+    <mavenPluginVersion>3.2</mavenPluginVersion>
   </properties>
   
   <dependencies>
@@ -101,6 +101,13 @@
       <version>1.3</version>
     </dependency>
 
+    <!-- dependencies to annotations -->
+    <dependency>
+      <groupId>org.apache.maven.plugin-tools</groupId>
+      <artifactId>maven-plugin-annotations</artifactId>
+      <scope>provided</scope>
+    </dependency>
+
     <!-- Test -->
     <dependency>
       <groupId>junit</groupId>
@@ -139,23 +146,27 @@
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-plugin-plugin</artifactId>
           <version>${mavenPluginVersion}</version>
+          <configuration>
+            <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
+          </configuration>
+          <executions>
+            <execution>
+              <id>mojo-descriptor</id>
+              <phase>process-classes</phase>
+              <goals>
+                <goal>descriptor</goal>
+              </goals>
+            </execution>
+            <execution>
+              <id>help-goal</id>
+              <goals>
+                <goal>helpmojo</goal>
+              </goals>
+            </execution>
+          </executions>
         </plugin>
       </plugins>
     </pluginManagement>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-plugin-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>generated-helpmojo</id>
-            <goals>
-              <goal>helpmojo</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
   </build>
 
   <reporting>

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/227f7a17/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AbstractScmMojo.java
----------------------------------------------------------------------
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AbstractScmMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AbstractScmMojo.java
index c2f3d3b..8c76df4 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AbstractScmMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AbstractScmMojo.java
@@ -30,6 +30,8 @@ import java.util.Properties;
 
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.Component;
+import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.scm.ScmBranch;
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.ScmFileSet;
@@ -54,130 +56,107 @@ import org.sonatype.plexus.components.sec.dispatcher.SecDispatcherException;
 /**
  * @author <a href="evenisse@apache.org">Emmanuel Venisse</a>
  * @author Olivier Lamy
- *
  */
 public abstract class AbstractScmMojo
     extends AbstractMojo
 {
     /**
      * The SCM connection URL.
-     *
-     * @parameter expression="${connectionUrl}" default-value="${project.scm.connection}"
      */
+    @Parameter( property = "connectionUrl", defaultValue = "${project.scm.connection}" )
     private String connectionUrl;
 
     /**
      * The SCM connection URL for developers.
-     *
-     * @parameter expression="${connectionUrl}" default-value="${project.scm.developerConnection}"
      */
+    @Parameter( property = "connectionUrl", defaultValue = "${project.scm.developerConnection}" )
     private String developerConnectionUrl;
 
     /**
      * The type of connection to use (connection or developerConnection).
-     *
-     * @parameter expression="${connectionType}" default-value="connection"
      */
+    @Parameter( property = "connectionType", defaultValue = "connection" )
     private String connectionType;
 
     /**
      * The working directory.
-     *
-     * @parameter expression="${workingDirectory}"
      */
+    @Parameter( property = "workingDirectory" )
     private File workingDirectory;
 
     /**
      * The user name (used by svn, starteam and perforce protocol).
-     *
-     * @parameter expression="${username}"
      */
+    @Parameter( property = "username" )
     private String username;
 
     /**
      * The user password (used by svn, starteam and perforce protocol).
-     *
-     * @parameter expression="${password}"
      */
+    @Parameter( property = "password" )
     private String password;
 
     /**
      * The private key (used by java svn).
-     *
-     * @parameter expression="${privateKey}"
      */
+    @Parameter( property = "privateKey" )
     private String privateKey;
 
     /**
      * The passphrase (used by java svn).
-     *
-     * @parameter expression="${passphrase}"
      */
+    @Parameter( property = "passphrase" )
     private String passphrase;
 
     /**
      * The url of tags base directory (used by svn protocol). It is not
      * necessary to set it if you use the standard svn layout
      * (branches/tags/trunk).
-     *
-     * @parameter expression="${tagBase}"
      */
+    @Parameter( property = "tagBase" )
     private String tagBase;
 
     /**
      * Comma separated list of includes file pattern.
-     *
-     * @parameter expression="${includes}"
      */
+    @Parameter( property = "includes" )
     private String includes;
 
     /**
      * Comma separated list of excludes file pattern.
-     *
-     * @parameter expression="${excludes}"
      */
+    @Parameter( property = "excludes" )
     private String excludes;
 
-    /**
-     * @component
-     */
+    @Component
     private ScmManager manager;
 
     /**
      * When this plugin requires Maven 3.0 as minimum, this component can be removed and o.a.m.s.c.SettingsDecrypter be
      * used instead.
-     * 
-     * @component roleHint="mng-4384"
      */
+    @Component( hint = "mng-4384" )
     private SecDispatcher secDispatcher;
 
     /**
      * The base directory.
-     *
-     * @parameter expression="${basedir}"
-     * @required
      */
+    @Parameter( property = "basedir", required = true )
     private File basedir;
 
-    /**
-     * @parameter default-value="${settings}"
-     * @required
-     * @readonly
-     */
+    @Parameter( defaultValue = "${settings}", readonly = true )
     private Settings settings;
 
     /**
      * List of System properties to pass to the JUnit tests.
-     *
-     * @parameter
      */
+    @Parameter
     private Properties systemProperties;
 
     /**
      * List of provider implementations.
-     *
-     * @parameter
      */
+    @Parameter
     private Map<String,String> providerImplementations;
     
     /**
@@ -185,10 +164,10 @@ public abstract class AbstractScmMojo
      * For many distributed SCMs like Git, a change like a commit 
      * is only stored in your local copy of the repository.  Pushing
      * the change allows your to more easily share it with other users.
-     * 
-     * @parameter expression="${pushChanges}" default-value="true"
+     *
      * @since 1.4
      */
+    @Parameter( property = "pushChanges", defaultValue = "true" )
     private boolean pushChanges;
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/227f7a17/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AddMojo.java
----------------------------------------------------------------------
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AddMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AddMojo.java
index 0f5c3a1..dad82bd 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AddMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AddMojo.java
@@ -20,6 +20,7 @@ package org.apache.maven.scm.plugin;
  */
 
 import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.command.add.AddScmResult;
 import org.apache.maven.scm.repository.ScmRepository;
@@ -30,10 +31,8 @@ import java.io.IOException;
  * Add a file set to the project.
  *
  * @author <a href="julien.henry@capgemini.com">Julien Henry</a>
- *
- * @goal add
- * @aggregator
  */
+@Mojo( name = "add", aggregator = true )
 public class AddMojo
     extends AbstractScmMojo
 {

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/227f7a17/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/BootstrapMojo.java
----------------------------------------------------------------------
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/BootstrapMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/BootstrapMojo.java
index 62e3186..720d47b 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/BootstrapMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/BootstrapMojo.java
@@ -22,6 +22,8 @@ package org.apache.maven.scm.plugin;
 import java.io.File;
 
 import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.scm.ScmResult;
 import org.apache.maven.scm.command.checkout.CheckOutScmResult;
 import org.codehaus.plexus.util.StringUtils;
@@ -35,10 +37,8 @@ import org.codehaus.plexus.util.cli.StreamConsumer;
  * Pull the project source from the configured scm and execute the configured goals.
  *
  * @author <a href="dantran@gmail.com">Dan T. Tran</a>
- *
- * @goal bootstrap
- * @requiresProject false
  */
+@Mojo( name = "bootstrap", requiresProject = false )
 public class BootstrapMojo
     extends CheckoutMojo
 {
@@ -46,26 +46,23 @@ public class BootstrapMojo
      * The goals to run on the clean checkout of a project for the bootstrap goal.
      * If none are specified, then the default goal for the project is executed.
      * Multiple goals should be comma separated.
-     *
-     * @parameter expression="${goals}"
      */
+    @Parameter( property = "goals" )
     private String goals;
 
     /**
      * A list of profiles to run with the goals.
      * Multiple profiles must be comma separated with no spaces.
-     *
-     * @parameter expression="${profiles}"
      */
+    @Parameter( property = "profiles" )
     private String profiles;
 
     /**
      * The subdirectory (under the project directory) in which to run the goals.
      * The project directory is the same as the checkout directory in most cases,
      * but for some SCMs, it is a subdirectory of the checkout directory.
-     *
-     * @parameter expression="${goalsDirectory}" default-value=""
      */
+    @Parameter( property = "goalsDirectory", defaultValue = "" )
     private String goalsDirectory;
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/227f7a17/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/BranchMojo.java
----------------------------------------------------------------------
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/BranchMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/BranchMojo.java
index b8a3bb9..e100697 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/BranchMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/BranchMojo.java
@@ -20,6 +20,8 @@ package org.apache.maven.scm.plugin;
  */
 
 import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.scm.ScmBranchParameters;
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.command.branch.BranchScmResult;
@@ -32,36 +34,30 @@ import java.io.IOException;
  * Branch the project.
  *
  * @author <a href="evenisse@apache.org">Emmanuel Venisse</a>
- *
- * @goal branch
- * @aggregator
  */
+@Mojo( name = "branch", aggregator = true )
 public class BranchMojo
     extends AbstractScmMojo
 {
     /**
      * The branch name.
-     *
-     * @parameter expression="${branch}"
-     * @required
      */
+    @Parameter( property = "branch", required = true )
     private String branch;
 
     /**
      * The message applied to the tag creation.
-     *
-     * @parameter expression="${message}"
      */
+    @Parameter( property = "message" )
     private String message;
     
     /**
      * currently only implemented with svn scm. Enable a workaround to prevent issue 
      * due to svn client > 1.5.0 (http://jira.codehaus.org/browse/SCM-406)
-     *      
-     * 
-     * @parameter expression="${remoteBranching}" default-value="true"
+     *
      * @since 1.3
      */    
+    @Parameter( property = "remoteBranching", defaultValue = "true" )
     private boolean remoteBranching;     
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/227f7a17/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ChangeLogMojo.java
----------------------------------------------------------------------
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ChangeLogMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ChangeLogMojo.java
index 0061488..1f777a2 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ChangeLogMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ChangeLogMojo.java
@@ -20,6 +20,8 @@ package org.apache.maven.scm.plugin;
  */
 
 import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.scm.ChangeSet;
 import org.apache.maven.scm.ScmBranch;
 import org.apache.maven.scm.ScmException;
@@ -40,10 +42,8 @@ import java.util.Date;
  *
  * @author <a href="dantran@gmail.com">Dan Tran</a>
  * @author Olivier Lamy
- *
- * @goal changelog
- * @aggregator
  */
+@Mojo( name = "changelog", aggregator = true )
 public class ChangeLogMojo
     extends AbstractScmMojo
 {
@@ -51,72 +51,62 @@ public class ChangeLogMojo
 
     /**
      * Start Date.
-     *
-     * @parameter expression="${startDate}"
      */
+    @Parameter( property = "startDate" )
     private String startDate;
 
     /**
      * End Date.
-     *
-     * @parameter expression="${endDate}"
      */
+    @Parameter( property = "endDate" )
     private String endDate;
 
     /**
      * Start Scm Version.
-     *
-     * @parameter expression="${startScmVersion}"
      */
+    @Parameter( property = "startScmVersion" )
     private String startScmVersion;
 
     /**
      * End Scm Version.
-     *
-     * @parameter expression="${endScmVersion}"
      */
+    @Parameter( property = "endScmVersion" )
     private String endScmVersion;
 
     /**
      * Start Scm Version Type.
-     *
-     * @parameter expression="${startScmVersionType}"
      */
+    @Parameter( property = "startScmVersionType" )
     private String startScmVersionType;
 
     /**
      * End Scm Version Type.
-     *
-     * @parameter expression="${endScmVersionType}"
      */
+    @Parameter( property = "endScmVersionType" )
     private String endScmVersionType;
 
     /**
      * Date Format in changelog output of scm tool.
-     *
-     * @parameter expression="${dateFormat}"
      */
+    @Parameter( property = "dateFormat" )
     private String dateFormat;
 
     /**
      * Date format to use for the specified startDate and/or endDate.
-     *
-     * @parameter expression="${userDateFormat}" default-value="yyyy-MM-dd"
      */
+    @Parameter( property = "userDateFormat", defaultValue = "yyyy-MM-dd" )
     private String userDateFormat = DEFAULT_DATE_FORMAT;
 
     /**
      * The version type (branch/tag) of scmVersion.
-     *
-     * @parameter expression="${scmVersionType}"
      */
+    @Parameter( property = "scmVersionType" )
     private String scmVersionType;
 
     /**
      * The version (revision number/branch name/tag name).
-     *
-     * @parameter expression="${scmVersion}"
      */
+    @Parameter( property = "scmVersion" )
     private String scmVersion;
 
     /**

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/227f7a17/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckLocalModificationsMojo.java
----------------------------------------------------------------------
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckLocalModificationsMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckLocalModificationsMojo.java
index a2f5e56..be48f8f 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckLocalModificationsMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckLocalModificationsMojo.java
@@ -1,13 +1,5 @@
 package org.apache.maven.scm.plugin;
 
-import java.io.File;
-
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.scm.ScmException;
-import org.apache.maven.scm.ScmFileSet;
-import org.apache.maven.scm.command.status.StatusScmResult;
-import org.apache.maven.scm.repository.ScmRepository;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -27,37 +19,44 @@ import org.apache.maven.scm.repository.ScmRepository;
  * under the License.
  */
 
+import java.io.File;
+
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.scm.ScmException;
+import org.apache.maven.scm.ScmFileSet;
+import org.apache.maven.scm.command.status.StatusScmResult;
+import org.apache.maven.scm.repository.ScmRepository;
+
 /**
  * This mojo will fail the build if there is any local modifications
- * @goal check-local-modification
+ *
  * @author Olivier Lamy
  * @since 1.2
  */
+@Mojo( name = "check-local-modification" )
 public class CheckLocalModificationsMojo
     extends AbstractScmMojo
 {
 
     /**
      * Custom error message
-     *
-     * @parameter expression="${scm.checkLocalModification.errorMessage}" 
-     *            default-value="The build will stop as there is local modifications";
      */
+    @Parameter( property = "scm.checkLocalModification.errorMessage",
+                    defaultValue = "The build will stop as there is local modifications" )
     private String errorMessage; 
     
     /**
      * Skip the check for local modifications if set to {@code true}.
-     *
-     * @parameter expression="${scm.checkLocalModification.skip}" default-value="false";
      */    
+    @Parameter( property = "scm.checkLocalModification.skip", defaultValue = "false" )
     private boolean skip;
     
     /**
      * current directory
-     *
-     * @parameter default-value="${basedir}";
-     * @readonly
      */     
+    @Parameter( defaultValue = "${basedir}", readonly = true )
     private File baseDirectory;
 
     public void execute()

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/227f7a17/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckinMojo.java
----------------------------------------------------------------------
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckinMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckinMojo.java
index 1b02682..cb0381c 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckinMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckinMojo.java
@@ -20,6 +20,8 @@ package org.apache.maven.scm.plugin;
  */
 
 import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.command.checkin.CheckInScmResult;
 import org.apache.maven.scm.repository.ScmRepository;
@@ -30,39 +32,33 @@ import java.io.IOException;
  * Commit changes to the configured scm url.
  *
  * @author <a href="evenisse@apache.org">Emmanuel Venisse</a>
- *
- * @goal checkin
- * @aggregator
  */
+@Mojo( name = "checkin", aggregator = true )
 public class CheckinMojo
     extends AbstractScmMojo
 {
     /**
      * Commit log.
-     *
-     * @parameter expression="${message}"
      */
+    @Parameter( property = "message" )
     private String message;
 
     /**
      * The configured scm url to use.
-     *
-     * @parameter expression="${connectionType}" default-value="developerConnection"
      */
+    @Parameter( property = "connectionType", defaultValue = "developerConnection" )
     private String connectionType;
 
     /**
      * The version type (branch/tag/revision) of scmVersion.
-     *
-     * @parameter expression="${scmVersionType}"
      */
+    @Parameter( property = "scmVersionType" )
     private String scmVersionType;
 
     /**
      * The version (revision number/branch name/tag name).
-     *
-     * @parameter expression="${scmVersion}"
      */
+    @Parameter( property = "scmVersion" )
     private String scmVersion;
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/227f7a17/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckoutMojo.java
----------------------------------------------------------------------
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckoutMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckoutMojo.java
index b03c9c0..29156d6 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckoutMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckoutMojo.java
@@ -23,6 +23,8 @@ import java.io.File;
 import java.io.IOException;
 
 import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.ScmFileSet;
 import org.apache.maven.scm.ScmResult;
@@ -33,46 +35,39 @@ import org.codehaus.plexus.util.FileUtils;
  * Get a fresh copy of the latest source from the configured scm url.
  *
  * @author <a href="evenisse@apache.org">Emmanuel Venisse</a>
- *
- * @goal checkout
- * @requiresProject false
  */
+@Mojo( name = "checkout", requiresProject = false )
 public class CheckoutMojo
     extends AbstractScmMojo
 {
     /**
      * Use Export instead of checkout
-     *
-     * @parameter expression="${useExport}" defaultValue="false";
      */
+    @Parameter( property = "useExport", defaultValue = "false" )
     private boolean useExport;
     
     /**
      * The directory to checkout the sources to for the bootstrap and checkout goals.
-     *
-     * @parameter expression="${checkoutDirectory}" default-value="${project.build.directory}/checkout"
      */
+    @Parameter( property = "checkoutDirectory", defaultValue = "${project.build.directory}/checkout" )
     private File checkoutDirectory;
 
     /**
      * Skip checkout if checkoutDirectory exists.
-     *
-     * @parameter expression="${skipCheckoutIfExists}" default-value="false"
      */
+    @Parameter( property = "skipCheckoutIfExists", defaultValue = "false" )
     private boolean skipCheckoutIfExists = false;
 
     /**
      * The version type (branch/tag/revision) of scmVersion.
-     *
-     * @parameter expression="${scmVersionType}"
      */
+    @Parameter( property = "scmVersionType" )
     private String scmVersionType;
 
     /**
      * The version (revision number/branch name/tag name).
-     *
-     * @parameter expression="${scmVersion}"
      */
+    @Parameter( property = "scmVersion" )
     private String scmVersion;
 
     /**

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/227f7a17/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/DefaultLog.java
----------------------------------------------------------------------
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/DefaultLog.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/DefaultLog.java
index 0d98e0b..bcae560 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/DefaultLog.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/DefaultLog.java
@@ -24,7 +24,6 @@ import org.apache.maven.scm.log.ScmLogger;
 
 /**
  * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
- *
  */
 public class DefaultLog
     implements ScmLogger

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/227f7a17/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/DiffMojo.java
----------------------------------------------------------------------
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/DiffMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/DiffMojo.java
index cf3250e..c8c515c 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/DiffMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/DiffMojo.java
@@ -20,6 +20,8 @@ package org.apache.maven.scm.plugin;
  */
 
 import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.command.diff.DiffScmResult;
 import org.apache.maven.scm.repository.ScmRepository;
@@ -32,47 +34,39 @@ import java.io.IOException;
  * Display the difference of the working copy with the latest copy in the configured scm url.
  *
  * @author <a href="evenisse@apache.org">Emmanuel Venisse</a>
- *
- * @goal diff
- * @aggregator
  */
+@Mojo( name = "diff", aggregator = true )
 public class DiffMojo
     extends AbstractScmMojo
 {
     /**
      * The version type (branch/tag/revision) of scmVersion.
-     *
-     * @parameter expression="${startScmVersionType}"
      */
+    @Parameter( property = "startScmVersionType" )
     private String startScmVersionType;
 
     /**
      * The version (revision number/branch name/tag name).
-     *
-     * @parameter expression="${startScmVersion}"
      */
+    @Parameter( property = "startScmVersion" )
     private String startScmVersion;
 
     /**
      * The version type (branch/tag/revision) of scmVersion.
-     *
-     * @parameter expression="${endScmVersionType}"
      */
+    @Parameter( property = "endScmVersionType" )
     private String endScmVersionType;
 
     /**
      * The version (revision number/branch name/tag name).
-     *
-     * @parameter expression="${endScmVersion}"
      */
+    @Parameter( property = "endScmVersion" )
     private String endScmVersion;
 
     /**
      * Output file name.
-     *
-     * @parameter expression="${outputFile}"
-     * default-value="${project.artifactId}.diff"
      */
+    @Parameter( property = "outputFile", defaultValue = "${project.artifactId}.diff" )
     private File outputFile;
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/227f7a17/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/EditMojo.java
----------------------------------------------------------------------
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/EditMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/EditMojo.java
index fafdec2..eb19df9 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/EditMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/EditMojo.java
@@ -20,6 +20,7 @@ package org.apache.maven.scm.plugin;
  */
 
 import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.command.edit.EditScmResult;
 import org.apache.maven.scm.repository.ScmRepository;
@@ -30,10 +31,8 @@ import java.io.IOException;
  * Edit/lock a set of files.
  *
  * @author <a href="dantran@apache.org">Dan Tran</a>
- *
- * @goal edit
- * @aggregator
  */
+@Mojo( name = "edit", aggregator = true )
 public class EditMojo
     extends AbstractScmMojo
 {

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/227f7a17/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ExportMojo.java
----------------------------------------------------------------------
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ExportMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ExportMojo.java
index cbbe4a1..d194448 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ExportMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ExportMojo.java
@@ -19,6 +19,8 @@ import java.io.File;
 import java.io.IOException;
 
 import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.ScmFileSet;
 import org.apache.maven.scm.command.export.ExportScmResult;
@@ -29,40 +31,33 @@ import org.codehaus.plexus.util.FileUtils;
  * Get a fresh exported copy of the latest source from the configured scm url.
  * 
  * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
- *
- * @goal export
- * @requiresProject false
  */
+@Mojo( name = "export", requiresProject = false )
 public class ExportMojo
     extends AbstractScmMojo
 {
     /**
      * The version type (branch/tag/revision) of scmVersion.
-     * 
-     * @parameter expression="${scmVersionType}"
      */
+    @Parameter( property = "scmVersionType" )
     private String scmVersionType;
 
     /**
      * The version (revision number/branch name/tag name).
-     * 
-     * @parameter expression="${scmVersion}"
      */
+    @Parameter( property = "scmVersion" )
     private String scmVersion;
 
     /**
      * The directory to export the sources to.
-     * 
-     * @parameter expression="${exportDirectory}" default-value="${project.build.directory}/export
-     * @required
      */
+    @Parameter( property = "exportDirectory", defaultValue = "${project.build.directory}/export", required = true )
     private File exportDirectory;
     
     /**
      * Skip export if exportDirectory exists.
-     *
-     * @parameter expression="${skipExportIfExists}" default-value="false"
      */
+    @Parameter( property = "skipExportIfExists", defaultValue = "false" )
     private boolean skipExportIfExists = false;
     
 

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/227f7a17/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ListMojo.java
----------------------------------------------------------------------
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ListMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ListMojo.java
index 0cce39b..f012111 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ListMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ListMojo.java
@@ -23,6 +23,8 @@ import java.io.File;
 import java.io.IOException;
 
 import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.ScmFile;
 import org.apache.maven.scm.ScmFileSet;
@@ -33,32 +35,27 @@ import org.apache.maven.scm.repository.ScmRepository;
  * Get the list of project files.
  *
  * @author <a href="evenisse@apache.org">Emmanuel Venisse</a>
- *
- * @goal list
- * @aggregator
  */
+@Mojo( name = "list", aggregator = true )
 public class ListMojo
     extends AbstractScmMojo
 {
     /**
      * The version type (branch/tag/revision) of scmVersion.
-     *
-     * @parameter expression="${scmVersionType}"
      */
+    @Parameter( property = "scmVersionType" )
     private String scmVersionType;
 
     /**
      * The version (revision number/branch name/tag name).
-     *
-     * @parameter expression="${scmVersion}"
      */
+    @Parameter( property = "scmVersion" )
     private String scmVersion;
 
     /**
      * Use recursive mode.
-     *
-     * @parameter expression="${recursive}" default-value="true"
      */
+    @Parameter( property = "recursive", defaultValue = "true" )
     private boolean recursive = true;
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/227f7a17/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/RemoveMojo.java
----------------------------------------------------------------------
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/RemoveMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/RemoveMojo.java
index 822e9d6..3f9adfa 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/RemoveMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/RemoveMojo.java
@@ -20,29 +20,28 @@ package org.apache.maven.scm.plugin;
  */
 
 import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.command.remove.RemoveScmResult;
 import org.apache.maven.scm.repository.ScmRepository;
 
 import java.io.IOException;
 
-
 /**
  * Mark a set of files for deletion.
  *
  * @author <a href="paul@webotech.co.uk">Paul Mackinlay</a>
- * @goal remove
- * @aggregator
  */
+@Mojo( name = "remove", aggregator = true )
 public class RemoveMojo
     extends AbstractScmMojo
 {
 
     /**
      * The commit message.
-     *
-     * @parameter expression="${message}"
      */
+    @Parameter( property = "message" )
     private String message;
 
     /**

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/227f7a17/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/StatusMojo.java
----------------------------------------------------------------------
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/StatusMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/StatusMojo.java
index a96386f..e994945 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/StatusMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/StatusMojo.java
@@ -23,6 +23,7 @@ import java.io.File;
 import java.io.IOException;
 
 import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.ScmFile;
 import org.apache.maven.scm.command.status.StatusScmResult;
@@ -34,10 +35,8 @@ import org.codehaus.plexus.util.StringUtils;
  *
  * @author <a href="evenisse@apache.org">Emmanuel Venisse</a>
  * @author Olivier Lamy
- *
- * @goal status
- * @aggregator
  */
+@Mojo( name = "status", aggregator = true )
 public class StatusMojo
     extends AbstractScmMojo
 {

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/227f7a17/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/TagMojo.java
----------------------------------------------------------------------
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/TagMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/TagMojo.java
index 7cc6400..349d3e0 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/TagMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/TagMojo.java
@@ -20,6 +20,8 @@ package org.apache.maven.scm.plugin;
  */
 
 import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.ScmTagParameters;
 import org.apache.maven.scm.command.tag.TagScmResult;
@@ -35,64 +37,54 @@ import java.util.Date;
  *
  * @author <a href="evenisse@apache.org">Emmanuel Venisse</a>
  * @author <a href="saden1@gmil.com">Sharmarke Aden</a>
- *
- * @goal tag
- * @aggregator
  */
+@Mojo( name = "tag", aggregator = true )
 public class TagMojo
     extends AbstractScmMojo
 {
     /**
      * The tag name.
-     *
-     * @parameter expression="${tag}"
-     * @required
      */
+    @Parameter( property = "tag", required = true )
     private String tag;
 
     /**
      * The message applied to the tag creation.
-     *
-     * @parameter expression="${message}"
      */
+    @Parameter( property = "message" )
     private String message;
 
     /**
      * Set the timestamp format.
-     *
-     * @parameter expression="${timestampFormat}" default-value="yyyyMMddHHmmss"
      */
+    @Parameter( property = "timestampFormat", defaultValue = "yyyyMMddHHmmss" )
     private String timestampFormat;
 
     /**
      * Use timestamp tagging.
-     *
-     * @parameter expression="${addTimestamp}" default-value="false"
      */
+    @Parameter( property = "addTimestamp", defaultValue = "false" )
     private boolean addTimestamp;
 
     /**
      * Define the timestamp position (end or begin).
-     *
-     * @parameter expression="${timestampPosition}" default-value="end"
      */
+    @Parameter( property = "timestampPosition", defaultValue = "end" )
     private String timestampPosition;
 
     /**
      * Timestamp tag prefix.
-     *
-     * @parameter expression="${timestampPrefix}" default-value="-"
      */
+    @Parameter( property = "timestampPrefix", defaultValue = "-" )
     private String timestampPrefix;
     
     /**
      * currently only implemented with svn scm. Enable a workaround to prevent issue 
      * due to svn client > 1.5.0 (http://jira.codehaus.org/browse/SCM-406)
      *      
-     * 
-     * @parameter expression="${remoteTagging}" default-value="true"
      * @since 1.2
      */    
+    @Parameter( property = "remoteTagging", defaultValue = "true" )
     private boolean remoteTagging;    
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/227f7a17/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/UnEditMojo.java
----------------------------------------------------------------------
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/UnEditMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/UnEditMojo.java
index cedc117..a602963 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/UnEditMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/UnEditMojo.java
@@ -20,6 +20,7 @@ package org.apache.maven.scm.plugin;
  */
 
 import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.command.unedit.UnEditScmResult;
 import org.apache.maven.scm.repository.ScmRepository;
@@ -30,10 +31,8 @@ import java.io.IOException;
  * Unedit/unlock a set of files.
  *
  * @author <a href="dantran@apache.org">Dan Tran</a>
- *
- * @goal unedit
- * @aggregator
  */
+@Mojo( name = "unedit", aggregator = true )
 public class UnEditMojo
     extends AbstractScmMojo
 {

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/227f7a17/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/UpdateMojo.java
----------------------------------------------------------------------
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/UpdateMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/UpdateMojo.java
index a73dc58..e720c44 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/UpdateMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/UpdateMojo.java
@@ -20,6 +20,8 @@ package org.apache.maven.scm.plugin;
  */
 
 import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.command.update.UpdateScmResult;
@@ -32,48 +34,39 @@ import java.io.IOException;
  * Update the local working copy with the latest source from the configured scm url.
  *
  * @author <a href="evenisse@apache.org">Emmanuel Venisse</a>
- *
- * @goal update
- * @aggregator
  */
+@Mojo( name = "update", aggregator = true )
 public class UpdateMojo
     extends AbstractScmMojo
 {
     /**
      * The version type (branch/tag/revision) of scmVersion.
-     *
-     * @parameter expression="${scmVersionType}"
      */
+    @Parameter( property = "scmVersionType" )
     private String scmVersionType;
 
     /**
      * The version (revision number/branch name/tag name).
-     *
-     * @parameter expression="${scmVersion}"
      */
+    @Parameter( property = "scmVersion" )
     private String scmVersion;
 
     /**
      * The project property where to store the revision name.
-     *
-     * @parameter expression="${revisionKey}" default-value="scm.revision"
      */
+    @Parameter( property = "revisionKey", defaultValue = "scm.revision" )
     private String revisionKey;
 
     /**
-     * The maven project.
-     *
-     * @parameter expression="${project}"
-     * @required
-     * @readonly
+     * The Maven project.
      */
+    @Parameter( defaultValue = "${project}", required = true, readonly = true )
     private MavenProject project;
 
     /**
      * Run Changelog after update.
-     *
-     * @parameter expression="${runChangelog}" default-value="false"
      */
+    @Parameter( property = "runChangelog", defaultValue = "false" )
     private boolean runChangelog = false;
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/227f7a17/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/UpdateSubprojectsMojo.java
----------------------------------------------------------------------
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/UpdateSubprojectsMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/UpdateSubprojectsMojo.java
index e0fa290..b034bb2 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/UpdateSubprojectsMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/UpdateSubprojectsMojo.java
@@ -20,6 +20,8 @@ package org.apache.maven.scm.plugin;
  */
 
 import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.command.update.UpdateScmResult;
@@ -31,41 +33,33 @@ import java.io.IOException;
 /**
  * Updates all projects in a multi project build. This is useful for users who have adopted the flat project structure
  * where the aggregator project is a sibling of the sub projects rather than sitting in the parent directory.
- *
- * @goal update-subprojects
- *
  */
+@Mojo( name = "update-subprojects" )
 public class UpdateSubprojectsMojo
     extends AbstractScmMojo
 {
     /**
      * The version type (branch/tag/revision) of scmVersion.
-     *
-     * @parameter expression="${scmVersionType}"
      */
+    @Parameter( property = "scmVersionType" )
     private String scmVersionType;
 
     /**
      * The version (revision number/branch name/tag name).
-     *
-     * @parameter expression="${scmVersion}"
      */
+    @Parameter( property = "scmVersion" )
     private String scmVersion;
 
     /**
      * The project property where to store the revision name.
-     *
-     * @parameter expression="${revisionKey}" default-value="scm.revision"
      */
+    @Parameter( property = "revisionKey", defaultValue = "scm.revision" )
     private String revisionKey;
 
     /**
-     * The maven project.
-     *
-     * @parameter expression="${project}"
-     * @required
-     * @readonly
+     * The Maven project.
      */
+    @Parameter( defaultValue = "${project}", required = true, readonly = true )
     private MavenProject project;
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/227f7a17/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ValidateMojo.java
----------------------------------------------------------------------
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ValidateMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ValidateMojo.java
index 07041a6..af86fdd 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ValidateMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ValidateMojo.java
@@ -20,6 +20,10 @@ package org.apache.maven.scm.plugin;
  */
 
 import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.Execute;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
 
 import java.util.Iterator;
 import java.util.List;
@@ -29,26 +33,22 @@ import java.util.List;
  *
  * @author <a href="evenisse@apache.org">Emmanuel Venisse</a>
  * @author Olivier Lamy
- *
- * @goal validate
- * @phase validate
- * @requiresProject false
  */
+@Mojo( name = "validate", requiresProject = false )
+@Execute( phase = LifecyclePhase.VALIDATE )
 public class ValidateMojo
     extends AbstractScmMojo
 {
     /**
      * The scm connection url.
-     *
-     * @parameter expression="${scmConnection}" default-value="${project.scm.connection}"
      */
+    @Parameter( property = "scmConnection", defaultValue = "${project.scm.connection}" )
     private String scmConnection;
 
     /**
      * The scm connection url for developers.
-     *
-     * @parameter expression="${scmDeveloperConnection}" default-value="${project.scm.developerConnection}"
      */
+    @Parameter( property = "scmDeveloperConnection", defaultValue = "${project.scm.developerConnection}" )
     private String scmDeveloperConnection;
 
     /** {@inheritDoc} */