diff --git a/src/main/java/org/apache/maven/plugins/stage/DefaultRepositoryCopier.java b/src/main/java/org/apache/maven/plugins/stage/DefaultRepositoryCopier.java
index 51a1954..9ce897f 100644
--- a/src/main/java/org/apache/maven/plugins/stage/DefaultRepositoryCopier.java
+++ b/src/main/java/org/apache/maven/plugins/stage/DefaultRepositoryCopier.java
@@ -192,7 +192,7 @@
             }
         }
 
-        Set moveCommands = new TreeSet();
+        Set<String> moveCommands = new TreeSet<>();
 
         // ----------------------------------------------------------------------------
         // Create the Zip file that we will deploy to the targetRepositoryUrl stage
@@ -273,7 +273,7 @@
         targetWagon.disconnect();
     }
 
-    private void scanDirectory( File basedir, File dir, ZipOutputStream zos, String version, Set moveCommands )
+    private void scanDirectory( File basedir, File dir, ZipOutputStream zos, String version, Set<String> moveCommands )
         throws IOException
     {
         if ( dir == null )
@@ -490,13 +490,12 @@
 
     protected List<String> scanForArtifactPaths( ArtifactRepository repository )
     {
-        List<String> collected;
         try
         {
             Wagon wagon = wagonManager.getWagon( repository.getProtocol() );
             Repository artifactRepository = new Repository( repository.getId(), repository.getUrl() );
             wagon.connect( artifactRepository );
-            collected = new ArrayList<String>();
+            List<String> collected = new ArrayList<String>();
             scan( wagon, "/", collected );
             wagon.disconnect();
 
