[ 
http://jira.codehaus.org/browse/MNG-4536?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Benjamin Bentmann closed MNG-4536.
----------------------------------

       Resolution: Fixed
    Fix Version/s: 3.0-alpha-7
         Assignee: Benjamin Bentmann

Fixed in [r904188|http://svn.apache.org/viewvc?view=revision&revision=904188]. 
Thanks for the example project!

> Long build time - enforcer running too many times
> -------------------------------------------------
>
>                 Key: MNG-4536
>                 URL: http://jira.codehaus.org/browse/MNG-4536
>             Project: Maven 2 & 3
>          Issue Type: Bug
>    Affects Versions: 3.0-alpha-6
>         Environment: Apache Maven 3.0-alpha-6 (r896384; 2010-01-06 
> 11:00:46+0000)
> Java version: 1.6.0_16
> Java home: C:\Java\jdk1.6.0_16\jre
> Default locale: en_GB, platform encoding: Cp1252
> OS name: "windows xp" version: "5.1" arch: "x86" Family: "windows"
>            Reporter: James Nord
>            Assignee: Benjamin Bentmann
>             Fix For: 3.0-alpha-7
>
>         Attachments: m3.0-a6.zip
>
>
> A simple mvn clean validate has more than tripled in time on a multi module 
> project I'm working on (when compared to 2.2.1).
> From what I've read on the list the 3.0-alpha-6 is supposed to be quicker 
> than 2.x so I'm quite surprised by this.
> The project is a multi-module project, with a corporate pom at the top of the 
> tree.
> From my interpretation of the build log the enforcer plugin is now validating 
> more than just the current module's pom for each module build.
> e.g.
> Corp Pom (defines validation rules)
> ProjA (parent is corp pom)
>  + ModA
>  + Mod B
>  + Mod C
> That is when mvn validate is run on proj A when the reactor moves to a mod A 
> it runs the enforcer rules on ProjA ModA, ModB and ModC, and again when it 
> builds Mod B it runs the enforecer rules again on all these modules  etc...
> I would only expect the enforcer to run against the project/module that it is 
> currently building (like maven 2.2.1).
> Note: the test project attached does not show the massive slowdown but does 
> show the enforcer running too many times (mvn clean validate | grep enforce). 
>  The massive slowdown is due to the company enfrcer rules that perform a svn 
> status for each invocation of the enforcer rules - but any enforcer rule 
> which takes some time to complete will show the same results when run 
> needlessly.
> mvn 2.2.1 output ("mvn validate")
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Reactor Summary:
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Project : Parent ...................................... SUCCESS 
> [4.704s]
> [INFO] Project : Mod A ....................................... SUCCESS 
> [2.225s]
> [INFO] Project : Mod B ....................................... SUCCESS 
> [2.225s]
> [INFO] Project : Mod C ....................................... SUCCESS 
> [2.225s]
> [INFO] Project : Mod D ....................................... SUCCESS 
> [2.215s]
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] BUILD SUCCESSFUL
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Total time: 14 seconds
> mvn 3.0-alpha-6 output ("mvn validate")
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Reactor Summary:
> [INFO]
> [INFO] Project : Parent .................................. SUCCESS [7.361s]
> [INFO] Project : Mod A ................................... SUCCESS [6.079s]
> [INFO] Project : Mod B ................................... SUCCESS [6.068s]
> [INFO] Project : Mod C ................................... SUCCESS [6.069s]
> [INFO] Project : Mod D ................................... SUCCESS [6.029s]
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] BUILD SUCCESS
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Total time: 31.866s
> The reason by looking at the logs seems the enforcer rule is run for each 
> module in the build for every module build.
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Building Project : Mod C 0.0.1-SNAPSHOT
> [INFO] 
> ------------------------------------------------------------------------
> [INFO]
> [INFO] --- maven-enforcer-plugin:1.0-beta-1:enforce (enforce-rules) @ modc ---
> [INFO] complex enforcer rule starting
> [INFO] complex enforcer rule finished
> [INFO]
> [INFO] --- maven-enforcer-plugin:1.0-beta-1:enforce (enforce-rules) @ parent 
> ---
> [INFO] complex enforcer rule starting
> [INFO] complex enforcer rule finished
> [INFO]
> [INFO] --- maven-enforcer-plugin:1.0-beta-1:enforce (enforce-rules) @ moda ---
> [INFO] complex enforcer rule starting
> [INFO] complex enforcer rule finished
> [INFO]
> [INFO] --- maven-enforcer-plugin:1.0-beta-1:enforce (enforce-rules) @ modb ---
> [INFO] complex enforcer rule starting
> [INFO] complex enforcer rule finished
> [INFO]
> [INFO] --- maven-enforcer-plugin:1.0-beta-1:enforce (enforce-rules) @ modc ---
> [INFO] complex enforcer rule starting
> [INFO] complex enforcer rule finished
> [INFO]
> [INFO] --- maven-enforcer-plugin:1.0-beta-1:enforce (enforce-rules) @ modd ---
> [INFO] complex enforcer rule starting
> [INFO] complex enforcer rule finished
> [INFO]
> [INFO] --- maven-scm-plugin:1.2:validate (validate) @ modc ---
> [INFO]
> Whilst in Maven 2.2.1 the rules are run twice for each module (due to the 
> build forking by the scm validate) they are run N times where N == number of 
> modules in reactor for each module in the reactor.
> to reproduce.
> extract attachment
> mvn install long_running_enforcer
> mvn install corp_pom
> mvn validate project (repeat with mavan 2.2.1 and maven 3.0-alpha-6)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to