[ 
https://issues.apache.org/jira/browse/MENFORCER-432?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Slawomir Jaranowski updated MENFORCER-432:
------------------------------------------
    Component/s: requireUpperBoundDeps

> requireUpperBoundDeps support for checking dependencyManagement
> ---------------------------------------------------------------
>
>                 Key: MENFORCER-432
>                 URL: https://issues.apache.org/jira/browse/MENFORCER-432
>             Project: Maven Enforcer Plugin
>          Issue Type: Improvement
>          Components: requireUpperBoundDeps, Standard Rules
>    Affects Versions: 3.1.0, 3.2.1
>            Reporter: Marcono1234
>            Priority: Minor
>             Fix For: waiting-for-feedback
>
>
> For projects which are either used as parent by other projects, or which are 
> used as Bill of Materials (BOM) and which declare dependencies in the 
> {{dependencyManagement}} it would be useful if {{requireUpperBoundDeps}} was 
> able to check the dependencies in the {{dependencyManagement}}. This would 
> allow verifying that the versions of these managed dependencies are correct 
> and do not cause any issues for consuming projects.
> Currently {{requireUpperBoundDeps}} seems to only check regular dependencies; 
> this prevents it from being used directly on the parent / BOM project, but 
> requires applying it on all consuming projects.
> It would be quite useful to already detect conflicting dependency versions 
> directly in the parent / BOM project.
> Maybe a separate option for this (e.g. {{checkDependencyManagement}}) would 
> be useful to allow enabling / disabling this check.
> It appears maven-dependency-tree already determines those managed 
> dependencies in {{DefaultDependencyCollectorBuilder}} respectively 
> {{Maven31DependencyCollectorBuilder}} (in older versions), but does not 
> expose this information.
> h3. Example
> {code:xml|title=pom.xml}
> <project>
>     <modelVersion>4.0.0</modelVersion>
>     <groupId>com.example</groupId>
>     <artifactId>my-bom</artifactId>
>     <version>1</version>
>     <packaging>pom</packaging>
>     <dependencyManagement>
>         <!-- Example from 
> https://maven.apache.org/enforcer/enforcer-rules/requireUpperBoundDeps.html 
> -->
>         <dependencies>
>             <dependency>
>                 <groupId>org.slf4j</groupId>
>                 <artifactId>slf4j-api</artifactId>
>                 <version>1.4.0</version>
>             </dependency>
>             <dependency>
>                 <groupId>ch.qos.logback</groupId>
>                 <artifactId>logback-classic</artifactId>
>                 <version>0.9.9</version>
>                 <!-- Depends on org.slf4j:slf4j-api:1.5.0 -->
>             </dependency>
>         </dependencies>
>     </dependencyManagement>
>     <build>
>         <plugins>
>             <plugin>
>                 <groupId>org.apache.maven.plugins</groupId>
>                 <artifactId>maven-enforcer-plugin</artifactId>
>                 <version>3.2.1</version>
>                 <executions>
>                     <execution>
>                         <id>enforce</id>
>                         <configuration>
>                             <rules>
>                                 <requireUpperBoundDeps>
>                                 </requireUpperBoundDeps>
>                             </rules>
>                         </configuration>
>                         <goals>
>                             <goal>enforce</goal>
>                         </goals>
>                     </execution>
>                 </executions>
>             </plugin>
>         </plugins>
>     </build>
> </project>
> {code}
> Running {{mvn validate}} passes. Only when changing the 
> {{dependencyManagement}} to regular dependencies Maven Enforcer detects the 
> rule violation.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to