You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Karl Heinz Marbaise (JIRA)" <ji...@codehaus.org> on 2014/03/17 13:52:59 UTC

[jira] (MENFORCER-186) Create a rule for the reactor (ReactorModuleConvergence)

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

Karl Heinz Marbaise updated MENFORCER-186:
------------------------------------------

    Summary: Create a rule for the reactor (ReactorModuleConvergence)  (was: Create a rule for the reactor (RequireReactorSameVersion?))

> Create a rule for the reactor (ReactorModuleConvergence)
> --------------------------------------------------------
>
>                 Key: MENFORCER-186
>                 URL: https://jira.codehaus.org/browse/MENFORCER-186
>             Project: Maven Enforcer Plugin
>          Issue Type: New Feature
>          Components: Standard Rules
>    Affects Versions: 1.3.1
>            Reporter: Karl Heinz Marbaise
>            Assignee: Karl Heinz Marbaise
>            Priority: Minor
>             Fix For: 1.4
>
>
> It would be nice having a rule which checks the consitency of a multi-module build.
> Say having a build with modules like this:
> {code}
> +-- root (pom.xml)
>      +--- m1 (pom.xml)
>            +--- m11 (pom.xml)
>            +--- m12 (pom.xml)
>      +--- m2 (pom.xml)
>            +--- m21 (pom.xml)
>            +--- m21 (pom.xml)
>      +--- m3 (pom.xml)
>            +--- m31 (pom.xml)
>            +--- m31 (pom.xml)
>      +--- m4 (pom.xml)
>      +--- m5 (pom.xml)
> {code}
> If you have for all modules the version 1.2.0-SNAPSHOT everything is fine.
> But what sometimes it happens that someone changes something and you will find things like the following:
> The module m21 (pom.xml) has a parent version of 1.1.0-SNAPSHOT instead of 1.2.0-SNAPSHOT which means maven will try to find this version in repository (you will get a warning during the build; But who reads warnings ;-))..
> Or other things having module interdependencies and it happens someone   does something like this:
> In m4 a dependency is written like this:
> {code}
>   <dependency>
>    <groupId>TheGroup</groupId>
>    <artifactId>m21</artifactId>
>    <version>1.1.0-SNAPSHOT</version>
>   </dependency>
> {code}
> which will usually build (except your SNAPSHOT's have been deleted before), but it is not correct. or better like this:
> {code}
>   <dependency>
>    <groupId>TheGroup</groupId>
>    <artifactId>m21</artifactId>
>    <version>1.1.0</version>
>   </dependency>
> {code}
> This means it will be solved against a released version which usually is not the intention in such cases.
> So the rule should check if the groupId/artifactId belongs to the reactor and check the consistency of the version of the dependencies etc. Also the parent would be nice.



--
This message was sent by Atlassian JIRA
(v6.1.6#6162)