diff --git a/src/main/java/org/apache/maven/shared/dependency/analyzer/DefaultProjectDependencyAnalyzer.java b/src/main/java/org/apache/maven/shared/dependency/analyzer/DefaultProjectDependencyAnalyzer.java
index 7f6df23..f0e92c4 100644
--- a/src/main/java/org/apache/maven/shared/dependency/analyzer/DefaultProjectDependencyAnalyzer.java
+++ b/src/main/java/org/apache/maven/shared/dependency/analyzer/DefaultProjectDependencyAnalyzer.java
@@ -129,9 +129,7 @@
         return results;
     }
 
-    // private methods --------------------------------------------------------
-
-    private Map<Artifact, Set<String>> buildArtifactClassMap( MavenProject project )
+    protected Map<Artifact, Set<String>> buildArtifactClassMap( MavenProject project )
         throws IOException
     {
         Map<Artifact, Set<String>> artifactClassMap = new LinkedHashMap<Artifact, Set<String>>();
@@ -213,7 +211,7 @@
         return dependencyAnalyzer.analyze( url );
     }
 
-    private Set<Artifact> buildDeclaredArtifacts( MavenProject project )
+    protected Set<Artifact> buildDeclaredArtifacts( MavenProject project )
     {
         @SuppressWarnings( "unchecked" )
         Set<Artifact> declaredArtifacts = project.getDependencyArtifacts();
@@ -226,7 +224,7 @@
         return declaredArtifacts;
     }
 
-    private Set<Artifact> buildUsedArtifacts( Map<Artifact, Set<String>> artifactClassMap,
+    protected Set<Artifact> buildUsedArtifacts( Map<Artifact, Set<String>> artifactClassMap,
                                               Set<String> dependencyClasses )
     {
         Set<Artifact> usedArtifacts = new HashSet<Artifact>();
