diff --git a/pom.xml b/pom.xml
index 831bcca..c09f110 100644
--- a/pom.xml
+++ b/pom.xml
@@ -118,17 +118,17 @@
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-utils</artifactId>
-      <version>3.0.24</version>
+      <version>3.3.0</version>
     </dependency>
     <dependency>
       <groupId>commons-io</groupId>
       <artifactId>commons-io</artifactId>
-      <version>2.5</version>
+      <version>2.6</version>
     </dependency>
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
-      <version>3.8.1</version>
+      <version>4.13.1</version>
       <scope>test</scope>
     </dependency>
   </dependencies>
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 c2daec8..9ce897f 100644
--- a/src/main/java/org/apache/maven/plugins/stage/DefaultRepositoryCopier.java
+++ b/src/main/java/org/apache/maven/plugins/stage/DefaultRepositoryCopier.java
@@ -40,7 +40,6 @@
 import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.IOUtil;
-import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
 import java.io.File;
@@ -296,7 +295,7 @@
                 if ( f.getName().endsWith( version ) )
                 {
                     String s = f.getAbsolutePath().substring( basedir.getAbsolutePath().length() + 1 );
-                    s = StringUtils.replace( s, "\\", "/" );
+                    s = s.replace( '\\', '/' );
 
                     moveCommands.add( "mv " + s + IN_PROCESS_MARKER + " " + s );
                 }
@@ -308,15 +307,15 @@
                 InputStream is = new FileInputStream( f );
 
                 String s = f.getAbsolutePath().substring( basedir.getAbsolutePath().length() + 1 );
-                s = StringUtils.replace( s, "\\", "/" );
+                s = s.replace( '\\', '/' );
 
                 // We are marking any version directories with the in-process flag so that
-                // anything being unpacked on the target side will not be recogized by Maven
+                // anything being unpacked on the target side will not be recognized by Maven
                 // and so users cannot download partially uploaded files.
 
                 String vtag = "/" + version;
 
-                s = StringUtils.replace( s, vtag + "/", vtag + IN_PROCESS_MARKER + "/" );
+                s = s.replace( vtag + "/", vtag + IN_PROCESS_MARKER + "/" );
 
                 ZipEntry e = new ZipEntry( s );
 
