Stubs are being compiled into artifacts.
----------------------------------------
Key: MGROOVY-187
URL: http://jira.codehaus.org/browse/MGROOVY-187
Project: GMaven
Issue Type: Bug
Components: stub generation
Affects Versions: 1.0-rc-4
Environment: -
Reporter: Jason Smith
Assignee: Jason Dillon
Here is the error (the stack trace is unimportant):
java.lang.InternalError: Stubbed method
What's happening is that if you use the maven-source-plugin, or I believe, the
maven-javadoc-plugin, Maven forks the lifecycle, and stubs are regenerated, but
compile is not run again. I believe this is making the stubs have a later date
than the .class files. So the next time you go through a non-clean compile,
Java will compile the stubs, but the GMaven plugin, being very smart and
knowing that it does not need to recompile, leaves the stub-compiled .class
files in place.
This only happens if the lifecycle forks.
I don't have a fix, but I do have a workaround. Here is my POM markup with a
Groovy script execution to fix this issue temporarily.
<plugin>
<groupId>org.codehaus.groovy.maven</groupId>
<artifactId>gmaven-plugin</artifactId>
<version>1.0-rc-4</version>
<dependencies>
<dependency>
<groupId>org.codehaus.groovy.maven.runtime</groupId>
<artifactId>gmaven-runtime-1.5</artifactId>
<version>1.0-rc-4</version>
<exclusions>
<exclusion>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all-minimal</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all-minimal</artifactId>
<version>1.5.7</version>
</dependency>
</dependencies>
<configuration>
<providerSelection>1.5</providerSelection>
</configuration>
<executions>
<execution>
<goals>
<goal>generateStubs</goal>
<goal>compile</goal>
<goal>generateTestStubs</goal>
<goal>testCompile</goal>
</goals>
</execution>
<execution>
<id>Prevent Stub Compilation</id>
<phase>generate-sources</phase>
<goals><goal>execute</goal></goals>
<configuration>
<source>
<![CDATA[
/*
* This code marks the date of the groovy-stubs
to sometime in 1969, which
* prevents them from being compiled over the
Groovy-copiled classes.
* JIRA is filed.
*/
project.compileSourceRoots.each
{String root ->
File folder = new File(root).canonicalFile;
if(folder.isDirectory() &&
folder.canonicalPath =~ /groovy-stubs/)
{
folder.eachFileRecurse
{File file ->
if(file.name.endsWith(".java"))
{
file.lastModified = 0;
}
}
}
}
]]>
</source>
</configuration>
</execution>
</executions>
</plugin>
--
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