diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireUpperBoundDeps.java b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireUpperBoundDeps.java
index 4abfb91c..ba1ded6a 100644
--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireUpperBoundDeps.java
+++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireUpperBoundDeps.java
@@ -136,7 +136,10 @@ private DependencyNode getNode( EnforcerRuleHelper helper )
new DefaultProjectBuildingRequest( session.getProjectBuildingRequest() );
buildingRequest.setProject( project );
buildingRequest.setLocalRepository( repository );
- ArtifactFilter filter = null; // we need to evaluate all scopes
+ ArtifactFilter filter = ( Artifact a ) -> ( "compile".equalsIgnoreCase( a.getScope () )
+ || "runtime".equalsIgnoreCase( a.getScope () ) )
+ && !a.isOptional();
+
return dependencyCollectorBuilder.collectDependencyGraph( buildingRequest, filter );
}
catch ( ExpressionEvaluationException e )
diff --git a/maven-enforcer-plugin/src/it/projects/require-upper-bound-deps_failure_show_scopes/pom.xml b/maven-enforcer-plugin/src/it/projects/require-upper-bound-deps_failure_show_scopes/pom.xml
index ef8eddc6..6f2488f9 100644
--- a/maven-enforcer-plugin/src/it/projects/require-upper-bound-deps_failure_show_scopes/pom.xml
+++ b/maven-enforcer-plugin/src/it/projects/require-upper-bound-deps_failure_show_scopes/pom.xml
@@ -35,7 +35,7 @@
org.apache.maven.plugins.enforcer.its
menforcer128_classic
0.9.9
- provided
+ compile
diff --git a/maven-enforcer-plugin/src/it/projects/require-upper-bound-deps_failure_show_scopes/verify.groovy b/maven-enforcer-plugin/src/it/projects/require-upper-bound-deps_failure_show_scopes/verify.groovy
index f916d09d..18eb75d9 100644
--- a/maven-enforcer-plugin/src/it/projects/require-upper-bound-deps_failure_show_scopes/verify.groovy
+++ b/maven-enforcer-plugin/src/it/projects/require-upper-bound-deps_failure_show_scopes/verify.groovy
@@ -26,6 +26,6 @@ def message =
' +-org.apache.maven.plugins.enforcer.its:menforcer128_api:1.4.0 [runtime]'+LS+
'and'+LS+
'+-org.apache.maven.plugins.enforcer.its:menforcer313:1.0-SNAPSHOT'+LS+
-' +-org.apache.maven.plugins.enforcer.its:menforcer128_classic:0.9.9 [provided]'+LS+
-' +-org.apache.maven.plugins.enforcer.its:menforcer128_api:1.5.0 [provided]'+LS
+' +-org.apache.maven.plugins.enforcer.its:menforcer128_classic:0.9.9'+LS+
+' +-org.apache.maven.plugins.enforcer.its:menforcer128_api:1.5.0'+LS
assert buildLog.text.contains( message )