[ 
https://jira.codehaus.org/browse/MCOMPILER-165?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=301607#comment-301607
 ] 

Joerg Schaible commented on MCOMPILER-165:
------------------------------------------

It cannot work with M2, since every plugin is loaded once and once only i.e. 
the dependencies on POM 3 are completely ignored in a reactor build. You would 
have to declare them also in the parent in the pluginMgmt section to make this 
work.

M3 uses isolated classloaders for the plugins, therefore it will work.
                
> Child modules don't seem to be able to use a different compilerId to their 
> parent modules when built from the parent POM.
> -------------------------------------------------------------------------------------------------------------------------
>
>                 Key: MCOMPILER-165
>                 URL: https://jira.codehaus.org/browse/MCOMPILER-165
>             Project: Maven 2.x Compiler Plugin
>          Issue Type: Bug
>    Affects Versions: 2.3.2
>            Reporter: Edd grant
>         Attachments: multiple-pom-mixed-java-groovy-project-test.zip
>
>
> I have a mixed Java/ Groovy project which is split over several Maven 
> modules, all of which have a common parent module. In the parent POM I 
> specify some basic common options for the {{maven-compiler-plugin}} (see 
> example 1 below). The idea being that in my child modules I can either simple 
> use this configuration by specifying the plugin with no further configuration 
> (example 2), or I can override this configuration if I have specific 
> requirements (for example switching the {{compilerId}}) (example 3).
> Example 1 - Parent POM:
> {code}
> <pluginManagement>
>   <plugins>
>      <plugin>
>       <artifactId>maven-compiler-plugin</artifactId>
>       <version>2.3.2</version>
>       <configuration>
>         <source>1.6</source>
>         <target>1.6</target>
>       </configuration> 
>     </plugin>
>   </plugins>
> </pluginManagement>
> {code} 
> Example 2 - Child POM that inherits the parent POM's plugin configuration:
> {code}
> <plugin>
>   <artifactId>maven-compiler-plugin</artifactId>
> </plugin>
> {code}
> Example 3 - Child POM that specifies a different compilation configuration 
> (uses the {{groovy-eclipse-compiler}}) to the parent POM's  configuration:
> {code}
> <plugin>
>   <artifactId>maven-compiler-plugin</artifactId>
>   <configuration>
>     <compilerId>groovy-eclipse-compiler</compilerId>
>     <verbose>true</verbose>
>     <source>1.6</source>
>     <target>1.6</target>
>   </configuration>
>   <dependencies>
>     <dependency>
>       <groupId>org.codehaus.groovy</groupId>
>       <artifactId>groovy-eclipse-compiler</artifactId>
>       <version>2.6.0-01</version>
>     </dependency>
>   </dependencies>
> </plugin>
> {code}
> Using this configuration everything works fine if I build ({{mvn clean 
> install}}) each POM individually, however when I build the project from the 
> parent POM compilation of the module with the switched {{compilerId}} fails 
> and  I get the following error:
> {code}
> [ERROR] BUILD ERROR
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] No such compiler 'groovy-eclipse-compiler'.
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Trace
> org.apache.maven.lifecycle.LifecycleExecutionException: No such compiler 
> 'groovy-eclipse-compiler'.
>       at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719)
>       at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
>       at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
>       at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
>       at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
>       at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
>       at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
>       at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
>       at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
>       at 
> org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>       at java.lang.reflect.Method.invoke(Method.java:597)
>       at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
>       at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
>       at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
>       at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
> Caused by: org.apache.maven.plugin.MojoExecutionException: No such compiler 
> 'groovy-eclipse-compiler'.
>       at 
> org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:339)
>       at org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:128)
>       at 
> org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
>       at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
>       ... 17 more
> {code}
> Would be most grateful if someone could look at this as it's causing us a lot 
> of pain. Also interested to know if there are any workarounds or quick fixes 
> in the meantime? Thanks.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to