This is an automated email from the ASF dual-hosted git repository. hboutemy pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/maven-dependency-plugin.git
The following commit(s) were added to refs/heads/master by this push: new 727c669 [MDEP-749] improve include/exclude scope documentation 727c669 is described below commit 727c669350430a5d594af9355817c97a16343a7d Author: Hervé Boutemy <hbout...@apache.org> AuthorDate: Sun May 23 10:23:46 2021 +0200 [MDEP-749] improve include/exclude scope documentation --- .../AbstractDependencyFilterMojo.java | 38 +++++++++++++--------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/src/main/java/org/apache/maven/plugins/dependency/fromDependencies/AbstractDependencyFilterMojo.java b/src/main/java/org/apache/maven/plugins/dependency/fromDependencies/AbstractDependencyFilterMojo.java index 9d66349..d7ac299 100644 --- a/src/main/java/org/apache/maven/plugins/dependency/fromDependencies/AbstractDependencyFilterMojo.java +++ b/src/main/java/org/apache/maven/plugins/dependency/fromDependencies/AbstractDependencyFilterMojo.java @@ -122,14 +122,15 @@ public abstract class AbstractDependencyFilterMojo protected String excludeTypes; /** - * Scope to include. An Empty string indicates all scopes (default). The scopes being interpreted are the scopes as - * Maven sees them, not as specified in the pom. In summary: + * Scope to include. An empty string indicates include all dependencies (default).<br> + * The selected scope value being interpreted is the scope as + * Maven filters for creating a classpath, not as specified in the pom. In summary: * <ul> - * <li><code>runtime</code> scope gives runtime and compile dependencies,</li> - * <li><code>compile</code> scope gives compile, provided, and system dependencies,</li> - * <li><code>test</code> (default) scope gives all dependencies,</li> - * <li><code>provided</code> scope just gives provided dependencies,</li> - * <li><code>system</code> scope just gives system dependencies.</li> + * <li><code>runtime</code> include scope gives runtime and compile dependencies,</li> + * <li><code>compile</code> include scope gives compile, provided, and system dependencies,</li> + * <li><code>test</code> include scope gives all dependencies (equivalent to default),</li> + * <li><code>provided</code> include scope just gives provided dependencies,</li> + * <li><code>system</code> include scope just gives system dependencies.</li> * </ul> * * @since 2.0 @@ -138,15 +139,16 @@ public abstract class AbstractDependencyFilterMojo protected String includeScope; /** - * Scope to exclude. An Empty string indicates no scopes (default). The scopes being interpreted are the scopes as - * Maven sees them, not as specified in the pom. In summary: + * Scope to exclude. An empty string indicates no dependencies (default).<br> + * The selected scope value being interpreted is the scope as + * Maven filters for creating a classpath, not as specified in the pom. In summary: * <ul> - * <li><code>runtime</code> scope excludes runtime and compile dependencies,</li> - * <li><code>compile</code> scope excludes compile, provided, and system dependencies,</li> - * <li><code>test</code> scope excludes all dependencies, then not really a legitimate option: it will fail, - * you probably meant to configure includeScope = compile or runtime</li> - * <li><code>provided</code> scope just excludes provided dependencies,</li> - * <li><code>system</code> scope just excludes system dependencies.</li> + * <li><code>runtime</code> exclude scope excludes runtime and compile dependencies,</li> + * <li><code>compile</code> exclude scope excludes compile, provided, and system dependencies,</li> + * <li><code>test</code> exclude scope excludes all dependencies, then not really a legitimate option: it will + * fail, you probably meant to configure includeScope = compile</li> + * <li><code>provided</code> exclude scope just excludes provided dependencies,</li> + * <li><code>system</code> exclude scope just excludes system dependencies.</li> * </ul> * * @since 2.0 @@ -294,6 +296,12 @@ public abstract class AbstractDependencyFilterMojo filter.addFilter( new ProjectTransitivityFilter( getProject().getDependencyArtifacts(), this.excludeTransitive ) ); + if ( "test".equals( this.excludeScope ) ) + { + throw new MojoExecutionException( "Excluding every artifact inside 'test' resolution scope means " + + "excluding everything: you probably want includeScope='compile', " + + "read parameters documentation for detailed explanations" ); + } filter.addFilter( new ScopeFilter( DependencyUtil.cleanToBeTokenizedString( this.includeScope ), DependencyUtil.cleanToBeTokenizedString( this.excludeScope ) ) );