Mojo's with @execute don't get configured with executedProject
--------------------------------------------------------------

                 Key: MNG-2581
                 URL: http://jira.codehaus.org/browse/MNG-2581
             Project: Maven 2
          Issue Type: Bug
            Reporter: Kenney Westerhof


Not sure if this is a bug or an improvement, but here's a scenario:

A custom plugin defines a MavenProject property with a timestamp. That timestamp
is used in <finalName>${project.artifactId}-${timestamp}</finalName>.

During the normal plugin execution, this field is evaluated correctly.

When running mvn assembly:assembly, the normal (forked) lifecycle also 
functions correctly.

But the assembly Mojo is configured with the original MavenProject, that 
doesn't have the ${timestamp} property,
so the <finalName> parameter on the assembly mojo will be "someArtifact-null".

A tough problem, but it goes further: Ideally you never want to use ${project} 
as a parameter, but
the objects fields directly. Say you want to use the source roots and define 
that as a parameter. Then you
never get access the generated-sources unless you manually examine the 
executedProject.

Right now, mojo's have to use different logic depending on whether they specify 
@execute phase="X",
(and examine fields of the executedProject).

Can we drop the original MavenProject object and replace that with 
executedProject instance, so we only have
1 instance of MavenProject? 
Or, if there are plugins that MUST use the original MavenProject, or use both 
MavenProject instances (we might
want to scan all existing mojo's to see what they do), can we add
a plugin flag that specifies that that mojo must be configured using the 
executedProject instead?


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