You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "John Casey (JIRA)" <ji...@codehaus.org> on 2008/06/11 00:28:12 UTC

[jira] Commented: (MNG-3530) Regression: Properties get resolved before the LifeCycle is Forked.

    [ http://jira.codehaus.org/browse/MNG-3530?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=138088#action_138088 ] 

John Casey commented on MNG-3530:
---------------------------------

I've refactored the way POM expressions are resolved in the build section, and will be posting my proposal to fix this issue shortly on http://docs.codehaus.org/display/MAVEN/Dynamic+POM+Build+Sections (confluence isn't responding for me to post a revision to this document ATM)...

The feature branch I've been working on is at:

http://svn.apache.org/repos/asf/maven/components/branches/john-2.0.x-dynamicBuild


One question, though: I've tried to run the MNG-3530 project attached to this issue, and it fails without creating a target/clover/test.clover directory. This would seem to be because clover isn't running when you run 'mvn clean install'...is there another way to verify this fix against the issue you're reporting? I've added integration tests for this issue here:

https://svn.apache.org/repos/asf/maven/core-integration-testing/trunk/core-integration-tests/src/test/resources/mng-3530-dynamicPOMInterpolation


But, I'm not sure whether they express the whole problem.

> Regression: Properties get resolved before the LifeCycle is Forked.
> -------------------------------------------------------------------
>
>                 Key: MNG-3530
>                 URL: http://jira.codehaus.org/browse/MNG-3530
>             Project: Maven 2
>          Issue Type: Bug
>          Components: General
>    Affects Versions: 2.0.9
>            Reporter: Nick Pellow
>            Assignee: John Casey
>             Fix For: 2.0.10
>
>         Attachments: MNG-3530.tar.gz, MNG-3530.zip
>
>
> Since Maven 2.0.9 -- If a plugin uses a forked lifecycle, then the project properties are resolved by maven before the lifecycle is forked.
> This means that the forked lifecycle has the non-forked lifecycle's values.
> This was not the case in maven prior to version 2.0.9, where properties were resolved at a much later time.
> For example - the attached sample project uses the Clover plugin with the xdoclet plugin. When {code}mvn clean install{code} is run under *Maven-2.0.8* you can see the following output:
> {code}
> [INFO] [xdoclet:xdoclet {execution: default}]
> [INFO] Initializing DocletTasks!!!
> [INFO] Executing tasks
>      [echo] Build Dir: ${project.build.directory}/test.clover
> [INFO] Executed tasks
> {code}
> whilst *Maven 2.0.9* outputs:
> {code}
> [INFO] [xdoclet:xdoclet {execution: default}]
> [INFO] Initializing DocletTasks!!!
> [INFO] Executing tasks
>     [mkdir] Created dir: /Users/niick/work/mvnclvr/src/it/mng/xdoclet/target
>     [touch] Creating /Users/niick/work/mvnclvr/src/it/mng/xdoclet/target/test.clover
>      [echo] Build Dir: /Users/niick/work/mvnclvr/src/it/mng/xdoclet/target/test.clover
> [INFO] Executed tasks
> [INFO] [resources:resources]
> {code}
> The fact the  ${project.build.directory} property has been expanded already under 2.0.9, means that the forked lifecycle has the same value for that property.
> This new behavior will break any plugin which uses a forked lifecycle.

-- 
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