diff --git a/src/main/java/org/apache/maven/plugins/dependency/PurgeLocalRepositoryMojo.java b/src/main/java/org/apache/maven/plugins/dependency/PurgeLocalRepositoryMojo.java
index 22a0dd3..fdc16bc 100644
--- a/src/main/java/org/apache/maven/plugins/dependency/PurgeLocalRepositoryMojo.java
+++ b/src/main/java/org/apache/maven/plugins/dependency/PurgeLocalRepositoryMojo.java
@@ -457,7 +457,7 @@
     /**
      * Convert a groupId:artifactId:version to a file system path
      *
-     * @param gav, the groupId:artifactId:version string
+     * @param gav the groupId:artifactId:version string
      * @return the corresponding path
      */
     private String gavToPath( String gav )
diff --git a/src/main/java/org/apache/maven/plugins/dependency/fromDependencies/CopyDependenciesMojo.java b/src/main/java/org/apache/maven/plugins/dependency/fromDependencies/CopyDependenciesMojo.java
index 296fee9..5b11cb9 100644
--- a/src/main/java/org/apache/maven/plugins/dependency/fromDependencies/CopyDependenciesMojo.java
+++ b/src/main/java/org/apache/maven/plugins/dependency/fromDependencies/CopyDependenciesMojo.java
@@ -158,7 +158,7 @@
      * install the artifact and the corresponding pom if copyPoms=true
      * 
      * @param artifact
-     * @param targetRepository
+     * @param buildingRequest
      */
     private void installArtifact( Artifact artifact, ProjectBuildingRequest buildingRequest )
     {
diff --git a/src/main/java/org/apache/maven/plugins/dependency/fromDependencies/UnpackDependenciesMojo.java b/src/main/java/org/apache/maven/plugins/dependency/fromDependencies/UnpackDependenciesMojo.java
index c224ce5..abd3d90 100644
--- a/src/main/java/org/apache/maven/plugins/dependency/fromDependencies/UnpackDependenciesMojo.java
+++ b/src/main/java/org/apache/maven/plugins/dependency/fromDependencies/UnpackDependenciesMojo.java
@@ -88,9 +88,7 @@
      *
      * @throws MojoExecutionException with a message if an error occurs.
      * @see #getDependencySets(boolean)
-     * @see #unpack(Artifact, String, File, String, String, String, FileMapper[])
      * @see #unpack(Artifact, File, String, FileMapper[])
-     * @see #unpack(Artifact, File, String, String, String, FileMapper[])
      */
     @Override
     protected void doExecute()
@@ -100,8 +98,7 @@
 
         for ( Artifact artifact : dss.getResolvedDependencies() )
         {
-            File destDir;
-            destDir = DependencyUtil.getFormattedOutputDirectory( useSubDirectoryPerScope, useSubDirectoryPerType,
+            File destDir = DependencyUtil.getFormattedOutputDirectory( useSubDirectoryPerScope, useSubDirectoryPerType,
                                                                   useSubDirectoryPerArtifact, useRepositoryLayout,
                                                                   stripVersion, outputDirectory, artifact );
             unpack( artifact, destDir, getIncludes(), getExcludes(), getEncoding(), getFileMappers() );
