@@ -122,14 +122,15 @@ public abstract class AbstractDependencyFilterMojo
122
122
protected String excludeTypes ;
123
123
124
124
/**
125
- * Scope to include. An Empty string indicates all scopes (default). The scopes being interpreted are the scopes as
126
- * Maven sees them, not as specified in the pom. In summary:
125
+ * Scope to include. An empty string indicates include all dependencies (default).<br>
126
+ * The selected scope value being interpreted is the scope as
127
+ * Maven filters for creating a classpath, not as specified in the pom. In summary:
127
128
* <ul>
128
- * <li><code>runtime</code> scope gives runtime and compile dependencies,</li>
129
- * <li><code>compile</code> scope gives compile, provided, and system dependencies,</li>
130
- * <li><code>test</code> (default) scope gives all dependencies,</li>
131
- * <li><code>provided</code> scope just gives provided dependencies,</li>
132
- * <li><code>system</code> scope just gives system dependencies.</li>
129
+ * <li><code>runtime</code> include scope gives runtime and compile dependencies,</li>
130
+ * <li><code>compile</code> include scope gives compile, provided, and system dependencies,</li>
131
+ * <li><code>test</code> include scope gives all dependencies (equivalent to default) ,</li>
132
+ * <li><code>provided</code> include scope just gives provided dependencies,</li>
133
+ * <li><code>system</code> include scope just gives system dependencies.</li>
133
134
* </ul>
134
135
*
135
136
* @since 2.0
@@ -138,15 +139,16 @@ public abstract class AbstractDependencyFilterMojo
138
139
protected String includeScope ;
139
140
140
141
/**
141
- * Scope to exclude. An Empty string indicates no scopes (default). The scopes being interpreted are the scopes as
142
- * Maven sees them, not as specified in the pom. In summary:
142
+ * Scope to exclude. An empty string indicates no dependencies (default).<br>
143
+ * The selected scope value being interpreted is the scope as
144
+ * Maven filters for creating a classpath, not as specified in the pom. In summary:
143
145
* <ul>
144
- * <li><code>runtime</code> scope excludes runtime and compile dependencies,</li>
145
- * <li><code>compile</code> scope excludes compile, provided, and system dependencies,</li>
146
- * <li><code>test</code> scope excludes all dependencies, then not really a legitimate option: it will fail,
147
- * you probably meant to configure includeScope = compile or runtime </li>
148
- * <li><code>provided</code> scope just excludes provided dependencies,</li>
149
- * <li><code>system</code> scope just excludes system dependencies.</li>
146
+ * <li><code>runtime</code> exclude scope excludes runtime and compile dependencies,</li>
147
+ * <li><code>compile</code> exclude scope excludes compile, provided, and system dependencies,</li>
148
+ * <li><code>test</code> exclude scope excludes all dependencies, then not really a legitimate option: it will
149
+ * fail, you probably meant to configure includeScope = compile</li>
150
+ * <li><code>provided</code> exclude scope just excludes provided dependencies,</li>
151
+ * <li><code>system</code> exclude scope just excludes system dependencies.</li>
150
152
* </ul>
151
153
*
152
154
* @since 2.0
@@ -294,6 +296,12 @@ protected DependencyStatusSets getDependencySets( boolean stopOnFailure, boolean
294
296
filter .addFilter ( new ProjectTransitivityFilter ( getProject ().getDependencyArtifacts (),
295
297
this .excludeTransitive ) );
296
298
299
+ if ( "test" .equals ( this .excludeScope ) )
300
+ {
301
+ throw new MojoExecutionException ( "Excluding every artifact inside 'test' resolution scope means "
302
+ + "excluding everything: you probably want includeScope='compile', "
303
+ + "read parameters documentation for detailed explanations" );
304
+ }
297
305
filter .addFilter ( new ScopeFilter ( DependencyUtil .cleanToBeTokenizedString ( this .includeScope ),
298
306
DependencyUtil .cleanToBeTokenizedString ( this .excludeScope ) ) );
299
307
0 commit comments