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

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

    Description: 
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 no a parent version of 1.1.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, 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 the 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.

  was:
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 no a parent version of 1.1.0-SNAPSHOT which means 
maven will try to find this version in repository (you will get a warning 
during the build; But who reads warngings ;-))..

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, 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 the 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.


> Create a rule for the reactor (RequireReactorSameVersion?)
> ----------------------------------------------------------
>
>                 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
>            Priority: Minor
>
> 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 no a parent version of 1.1.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, 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 the 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)

Reply via email to