[ 
https://jira.codehaus.org/browse/MENFORCER-185?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=358959#comment-358959
 ] 

Karl-Heinz Marbaise commented on MENFORCER-185:
-----------------------------------------------

So first thanks Curtis for your feedback. So after taking a look into that i 
found some things we need to mention.

The 
[documentation|http://maven.apache.org/enforcer/enforcer-rules/requireReleaseDeps.html]
 says that by default the {{onlyWhenRelease}} configuration element is set to 
{{false}} which means the check will be done always. Furthermore the 
documentation also says the default for {{failWhenParentIsSnapshot}} 
configuration element is set to {{true}} which means it will check the parent 
always. These are the reasons why the example build fails.

I have created a [github 
project|https://github.com/khmarbaise/menforcer/tree/master/menforcer-185] with 
the above example and enhanced it a little with an dependency to {{ham}} in 
{{green-egs}} module but with the wrong version which is not from the current 
reactor. The newly implemented rule {{reactorModuleConvergence}} will exactly 
show this problem.

{code}
[WARNING] Rule 0: org.apache.maven.plugins.enforcer.ReactorModuleConvergence 
failed with message:
Reactor modules contains dependencies which do not reference the reactor.
There is a problem in your reactor.
 module: seuss:green-eggs:jar:0.0.0-SNAPSHOT
    dependency: seuss:ham:0.0.1-SNAPSHOT
{code}

This is of course not the check for SNAPSHOT dependencies what you like to do. 
So this looks to me that we need to (re)implement the 
{{requireReleaseDependencies}} rule in a complete different way...cause the doc 
stated:
??This rule checks the dependencies and fails if any snapshots are found.??
Based on that i would interpret that in the way to check only the dependencies 
and check if they are not part of the reactor to fail.

PS.: The title of the issue is a little bit misleading, cause we are talking 
about a multi module build and not about an aggregator build.

> Require Release Dependencies ignorant about aggregator build
> ------------------------------------------------------------
>
>                 Key: MENFORCER-185
>                 URL: https://jira.codehaus.org/browse/MENFORCER-185
>             Project: Maven Enforcer Plugin
>          Issue Type: Bug
>          Components: Standard Rules
>    Affects Versions: 1.3.1
>            Reporter: Thomas Diesler
>         Attachments: seuss.zip
>
>
> If A depends on B it is ok for A-1.0.0-SNAPSHOT to have snapshot dependency 
> on B-1.0.0-SNAPSHOT if B was build before A during the same reactor build.
> Using the requireReleaseDeps rule it seems that SNAPSHOTS are generally not 
> allowed even when they belong to the same project and were built during the 
> same reactor build.
> We have a complex project with 100+ modules. I want to enforce that no module 
> has dependencies on project SNAPSHOTS that were not included in the build. In 
> such case A would use a stale version of B that happened to be available in 
> the local/remote maven repository.



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

Reply via email to