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 b0a3aea..f3b5e0b 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
@@ -26,6 +26,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Objects;
 import java.util.Properties;
 
 import org.apache.maven.plugin.AbstractMojo;
@@ -445,7 +446,7 @@
             getLog().error( result.getCommandOutput() == null ? "" : result.getCommandOutput() );
 
             throw new MojoExecutionException(
-                "Command failed." + StringUtils.defaultString( result.getProviderMessage() ) );
+                "Command failed: " + Objects.toString( result.getProviderMessage() ) );
         }
     }
 
diff --git a/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/command/changelog/AccuRevChangeLogCommand.java b/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/command/changelog/AccuRevChangeLogCommand.java
index b0b02d4..db149cc 100644
--- a/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/command/changelog/AccuRevChangeLogCommand.java
+++ b/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/command/changelog/AccuRevChangeLogCommand.java
@@ -26,6 +26,7 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 
 import org.apache.maven.scm.ChangeFile;
 import org.apache.maven.scm.ChangeSet;
@@ -96,7 +97,7 @@
                 endVersion == null ? new AccuRevVersion( fromVersion.getBasisStream(), "now" )
                                 : repository.getAccuRevVersion( endVersion );
                 
-            if ( !StringUtils.equals( fromVersion.getBasisStream(), toVersion.getBasisStream() ) )
+            if ( !Objects.equals( fromVersion.getBasisStream(), toVersion.getBasisStream() ) )
             {
                 throw new AccuRevException( "Not able to provide change log between different streams " + fromVersion
                     + "," + toVersion );
diff --git a/maven-scm-providers/maven-scm-provider-accurev/src/test/java/org/apache/maven/scm/provider/accurev/AccuRevScmProviderRepositoryMatcher.java b/maven-scm-providers/maven-scm-provider-accurev/src/test/java/org/apache/maven/scm/provider/accurev/AccuRevScmProviderRepositoryMatcher.java
index bdfc37e..b959879 100644
--- a/maven-scm-providers/maven-scm-provider-accurev/src/test/java/org/apache/maven/scm/provider/accurev/AccuRevScmProviderRepositoryMatcher.java
+++ b/maven-scm-providers/maven-scm-provider-accurev/src/test/java/org/apache/maven/scm/provider/accurev/AccuRevScmProviderRepositoryMatcher.java
@@ -1,5 +1,7 @@
 package org.apache.maven.scm.provider.accurev;
 
+import java.util.Objects;
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -20,7 +22,6 @@
  */
 
 import org.apache.maven.scm.provider.ScmProviderRepository;
-import org.codehaus.plexus.util.StringUtils;
 import org.hamcrest.Description;
 import org.hamcrest.Matcher;
 import org.hamcrest.TypeSafeMatcher;
@@ -86,11 +87,11 @@
             return false;
         }
         AccuRevScmProviderRepository accuRevRepo = (AccuRevScmProviderRepository) repo;
-        return StringUtils.equals( user, accuRevRepo.getUser() )
-            && StringUtils.equals( pass, accuRevRepo.getPassword() )
-            && StringUtils.equals( host, accuRevRepo.getHost() ) && port == accuRevRepo.getPort()
-            && StringUtils.equals( stream, accuRevRepo.getStreamName() )
-            && StringUtils.equals( projectPath, accuRevRepo.getProjectPath() );
+        return Objects.equals( user, accuRevRepo.getUser() )
+            && Objects.equals( pass, accuRevRepo.getPassword() )
+            && Objects.equals( host, accuRevRepo.getHost() ) && port == accuRevRepo.getPort()
+            && Objects.equals( stream, accuRevRepo.getStreamName() )
+            && Objects.equals( projectPath, accuRevRepo.getProjectPath() );
 
     }
 }
diff --git a/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvs-commons/src/test/java/org/apache/maven/scm/provider/cvslib/command/changelog/CvsChangeLogConsumerTest.java b/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvs-commons/src/test/java/org/apache/maven/scm/provider/cvslib/command/changelog/CvsChangeLogConsumerTest.java
index 379801f..6290219 100644
--- a/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvs-commons/src/test/java/org/apache/maven/scm/provider/cvslib/command/changelog/CvsChangeLogConsumerTest.java
+++ b/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvs-commons/src/test/java/org/apache/maven/scm/provider/cvslib/command/changelog/CvsChangeLogConsumerTest.java
@@ -22,7 +22,6 @@
 import org.apache.maven.scm.ChangeSet;
 import org.apache.maven.scm.ScmTestCase;
 import org.apache.maven.scm.log.DefaultLog;
-import org.apache.maven.scm.provider.cvslib.AbstractCvsScmTest;
 import org.apache.maven.scm.util.ConsumerUtils;
 
 import java.io.File;
diff --git a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/changelog/SvnChangeLogCommand.java b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/changelog/SvnChangeLogCommand.java
index 65b90df..7f50bb7 100644
--- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/changelog/SvnChangeLogCommand.java
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/changelog/SvnChangeLogCommand.java
@@ -42,6 +42,7 @@
 import java.io.File;
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.Objects;
 import java.util.TimeZone;
 
 /**
@@ -219,7 +220,7 @@
             }
         }
 
-        if ( endVersion == null || !StringUtils.equals( "BASE", endVersion.getName() ) )
+        if ( endVersion == null || !Objects.equals( "BASE", endVersion.getName() ) )
         {
             cl.createArg().setValue( repository.getUrl() + "@" );
         }
