[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[m2e-dev] Lifecycle Mapping / Secondary Configurator issue
|
Hi,
Groovy compiler support is added via :
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-compiler-plugin</artifactId>
<version>${tycho.version}</version>
<configuration>
<compilerId>groovy-eclipse-compiler</compilerId>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-eclipse-compiler</artifactId>
<version>2.7.0-01</version>
</dependency>
</dependencies>
</plugin>
It works fine so far in command line builds. For the IDE, I'm using a combination of the Groovy/Grails Tool Suite, m2e and m2eclipse-tycho.
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-compiler-plugin</artifactId>
<versionRange>[0.14.0,)</versionRange>
<parameters>
<compilerId>groovy-eclipse-compiler</compilerId>
</parameters>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</pluginExecutionFilter>
<action>
<configurator>
<id>org.codehaus.groovy.m2eclipse.configurator</id>
</configurator>
</action>
</pluginExecution>
But turns out, m2e doesn't like it and I face a "Conflicting lifecycle mapping error" accompanied by the dreaded "plugin execution not covered", when testing that LM :
Conflicting lifecycle mapping (plugin execution "org.eclipse.tycho:tycho-compiler-plugin:0.15.0:compile (execution: default-compile, phase: compile)"). To enable full functionality, remove the conflicting mapping and run Maven->Update Project Configuration.
Actually m2eclipse-tycho defines the following
pluginExecution for tycho-compiler-plugin :
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-compiler-plugin</artifactId>
<versionRange>[0.12.0,)</versionRange>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
Actual tycho-compiler-plugin settings are handled via <lifecycleMappingId>org.sonatype.tycho.m2e.tychoLifecycleMapping</lifecycleMappingId>
The real issue is there's no notion of secondary lifecycleMapping we could extend and there's no way to use a secondary configurator for a principal pluginExecution mapping using <ignore> (or <execute>). The lifecycle mapping part of m2e being a bit sensible, I'd like to hear some advice before I start breaking things.
Until a proper solution is implemented in m2e core, I was thinking m2eclipse-tycho could be modified to use an IgnoreConfigurator, that could then have a secondary configurator defined in org.codehaus.groovy.m2eclipse.
Ideas anyone?
Regards,
Fred Bricon
* Before you ask, I like Groovy a lot, but I suck at it, never really had a chance to actually do something more meaningful than a hello world example, so don't pay attention to the 'groovy' code in the archetype. Feel free to fork the it and enhance it at your will :-P
--
"Have you tried turning it off and on again" - The IT Crowd