[
http://jira.codehaus.org/browse/MGROOVY-184?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jason Smith closed MGROOVY-184.
-------------------------------
Resolution: Fixed
Treated, checked in SVN revision 15354. Modification to CompileState API.
Required minor fixup for TestCompileMojo, GenerateStubsMojo,
GenerateTestStubsMojo, and CompileMojo.
Changed CompileState so that it accepts the Project as a key (using data from
the MavenProject instance to generate a unique key for each project in the
build).
This change deals with the assumption that a GenerateStubs is always followed
by a Compile that can clear it. In at least one case, GenerateStubs was being
called in a forked lifecycle without a Compile. This resulted in
"forceCompile" files being kept around for the next project. This fix ensures
that there can be no bleed-over of information from one project to the next.
> org.codehaus.groovy.maven.plugin.CompileState implementation causes errors in
> <module/> builds
> ----------------------------------------------------------------------------------------------
>
> Key: MGROOVY-184
> URL: http://jira.codehaus.org/browse/MGROOVY-184
> Project: GMaven
> Issue Type: Bug
> Components: compile, stub generation
> Affects Versions: 1.0-rc-4
> Environment: -
> Reporter: Jason Smith
> Assignee: Jason Dillon
> Priority: Critical
>
> The same instance of CompileState is being passed to every GMaven mojo.
> During the build, the CompileState singleton is being loaded with files to
> compile when stubs are generated, then cleared when the Compile occurs.
> The problem with this is that GenerateStubs can happen irrespective of
> Compile.
> My issue occurs because I am using the maven-source-plugin, which causes
> GenerateStubs to be run out of turn, after Compile. The next project to be
> compiled in the <module/> build gets the resulting "forced-compile" files
> from the previous build. And because some dependencies aren't there in the
> next build in the chain, the compilation fails.
> In my case, GMaven is trying to compile a custom Maven Mojo class into
> another project, and that project does not reference the Maven dependencies.
> I am not sure the best way to fix this. If the CompileState class used the
> current MavenProject as a key, that would work (since a single project will
> have the same forced-compile files throughout the build). I suppose the
> MavenProject could be passed in as an argument. I'm not totally up on
> Plexus, so there might be a way to discover the current project info during
> the build...
> The issue seems to me, from hacking into the source, that there is an
> assumption that GenerateStubs will always be followed by Compile, in order,
> for each project. While this is usually the case, it appears that it is not
> necessarily always the case.
> This is a subtle yet important bug, as it can result in classes being
> compiled into the wrong projects without warning (if all the dependencies
> happen to line up).
--
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
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email