Il ven 28 dic 2018, 23:40 <[email protected]> ha scritto:
> This is an automated email from the ASF dual-hosted git repository.
>
> michaelo pushed a commit to branch MNG-6213
> in repository https://gitbox.apache.org/repos/asf/maven.git
>
> commit 859e344f4d5f7bfa00caf7343ea6554138e9dcf7
> Author: Michael Warnecke <[email protected]>
> AuthorDate: Sat Sep 23 18:37:09 2017 +0200
>
> [MNG-6213] Validate scope in dependencyManagement
>
> This closes #131
> ---
> .../model/validation/DefaultModelValidator.java | 10 ++-
> .../validation/DefaultModelValidatorTest.java | 10 +++
> .../validation/bad-dependency-management-scope.xml | 72
> ++++++++++++++++++++++
> 3 files changed, 90 insertions(+), 2 deletions(-)
>
> diff --git
> a/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
> b/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
> index 1c84776..f58d03a 100644
> ---
> a/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
> +++
> b/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
> @@ -105,13 +105,13 @@ public class DefaultModelValidator
> + ", the parent element cannot have the
> same groupId:artifactId as the project.",
> parent );
> }
> -
> +
> if ( equals( "LATEST", parent.getVersion() ) || equals(
> "RELEASE", parent.getVersion() ) )
> {
> addViolation( problems, Severity.WARNING, Version.BASE,
> "parent.version", null,
> "is either LATEST or RELEASE (both of them
> are being deprecated)", parent );
> }
> -
> +
> }
>
> if ( request.getValidationLevel() >=
> ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_2_0 )
> @@ -598,6 +598,12 @@ public class DefaultModelValidator
>
> validateEffectiveModelAgainstDependency( prefix,
> problems, m, d, request );
> }
> + else
> + {
> + validateEnum( prefix + "scope", problems,
> Severity.WARNING, Version.V20, d.getScope(),
> + d.getManagementKey(), d, "provided",
> "compile", "runtime", "test", "system",
> + "import" );
>
Don't we have a constant for the list of available scopes?
Enrico
+ }
> }
> }
> }
> diff --git
> a/maven-model-builder/src/test/java/org/apache/maven/model/validation/DefaultModelValidatorTest.java
> b/maven-model-builder/src/test/java/org/apache/maven/model/validation/DefaultModelValidatorTest.java
> index 3f31526..a9d4c00 100644
> ---
> a/maven-model-builder/src/test/java/org/apache/maven/model/validation/DefaultModelValidatorTest.java
> +++
> b/maven-model-builder/src/test/java/org/apache/maven/model/validation/DefaultModelValidatorTest.java
> @@ -339,6 +339,16 @@ public class DefaultModelValidatorTest
> assertTrue( result.getWarnings().get( 1 ).contains( "test:g" ) );
> }
>
> + public void testBadDependencyManagementScope()
> + throws Exception
> + {
> + SimpleProblemCollector result = validate(
> "bad-dependency-management-scope.xml" );
> +
> + assertViolations( result, 0, 0, 1 );
> +
> + assertContains( result.getWarnings().get( 0 ), "test:g" );
> + }
> +
> public void testBadDependencyVersion()
> throws Exception
> {
> diff --git
> a/maven-model-builder/src/test/resources/poms/validation/bad-dependency-management-scope.xml
> b/maven-model-builder/src/test/resources/poms/validation/bad-dependency-management-scope.xml
> new file mode 100644
> index 0000000..6b37a85
> --- /dev/null
> +++
> b/maven-model-builder/src/test/resources/poms/validation/bad-dependency-management-scope.xml
> @@ -0,0 +1,72 @@
> +<!--
> +Licensed to the Apache Software Foundation (ASF) under one
> +or more contributor license agreements. See the NOTICE file
> +distributed with this work for additional information
> +regarding copyright ownership. The ASF licenses this file
> +to you under the Apache License, Version 2.0 (the
> +"License"); you may not use this file except in compliance
> +with the License. You may obtain a copy of the License at
> +
> + http://www.apache.org/licenses/LICENSE-2.0
> +
> +Unless required by applicable law or agreed to in writing,
> +software distributed under the License is distributed on an
> +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> +KIND, either express or implied. See the License for the
> +specific language governing permissions and limitations
> +under the License.
> +-->
> +
> +<project>
> + <modelVersion>4.0.0</modelVersion>
> + <artifactId>aid</artifactId>
> + <groupId>gid</groupId>
> + <version>0.1</version>
> +
> + <dependencyManagement>
> + <dependencies>
> + <dependency>
> + <groupId>test</groupId>
> + <artifactId>a</artifactId>
> + <version>0.2</version>
> + </dependency>
> + <dependency>
> + <groupId>test</groupId>
> + <artifactId>b</artifactId>
> + <version>0.2</version>
> + <scope>compile</scope>
> + </dependency>
> + <dependency>
> + <groupId>test</groupId>
> + <artifactId>c</artifactId>
> + <version>0.2</version>
> + <scope>runtime</scope>
> + </dependency>
> + <dependency>
> + <groupId>test</groupId>
> + <artifactId>d</artifactId>
> + <version>0.2</version>
> + <scope>test</scope>
> + </dependency>
> + <dependency>
> + <groupId>test</groupId>
> + <artifactId>e</artifactId>
> + <version>0.2</version>
> + <scope>provided</scope>
> + </dependency>
> + <dependency>
> + <groupId>test</groupId>
> + <artifactId>f</artifactId>
> + <version>0.2</version>
> + <scope>import</scope>
> + </dependency>
> + <dependency>
> + <groupId>test</groupId>
> + <artifactId>g</artifactId>
> + <version>1</version>
> + <type>pom</type>
> + <scope>include</scope>
> + </dependency>
> + </dependencies>
> + </dependencyManagement>
> +</project>
>
> --
-- Enrico Olivelli