[jbosstools-dev] m2e and new execution plugins?

Brian Fitzpatrick bfitzpat at redhat.com
Thu May 5 17:57:07 EDT 2016


Thanks Fred!

We'll explore some options and see what door we choose to open. :)

--Fitz

On Thu, May 5, 2016 at 1:23 PM, Fred Bricon <fbricon at redhat.com> wrote:

> Hi Brian,
>
> sooo, m2e doesn't know if it's safe to execute a 3rd party plugin or not,
> during an Eclipse build[1]. It needs hints whether to ignore or execute
> this maven plugin or maybe delegate its execution to some eclipse plugin
> adapter.
>
> So the very first question you need to answer is : does the maven plugin
> need to be invoked during an eclipse (incremental or full) build, or can it
> be safely ignored?
> I'm guessing (but you prolly want to ask the exoerts):
> - cxf-java2wadl-plugin:parsejavadoc: probably ignored
> - cxf-java2wadl-plugin: java2wadl: probably executed on full builds only
> (you don't want to regenerate the wadl every time you save a file in your
> project)
> - fabric-cxf-plugins: java2swagger: probably executed on full builds only
>
> Once you have the answer to that question, the next step is to declare a
> lifecycle mapping (LM), which can be done in several ways, depending on
> your use case:
>
> 1 - add a LM descriptor within the maven plugin itself:
>      * this only affects consumers of the new maven plugin version
> containing the LM. For older versions, see #2-#3
>      * if must be executed, need to ensure this is done in an optimal way
> by using the incremental build API [2], to at least automatically refresh
> resources modified by the plugin execution
> 2 - define m2e LM in pom.xml
>      * define it once in a common parent pom to avoid xml bloat, that
> should be easy to do for new example projects, won't work for previous
> example releases
> 3 - create an m2e configurator (eclipse plugin) [3]
>     * can simply define the LM. Can also enhance eclipse integration by
> configuring some eclipse specific configuration
>     * the eclipse plugin needs to be added to the m2e discovery catalog [4]
>
> You could reach out to the fabric8 team and ask them if they're willing
> to make their plugins incremental-build friendly. For Apache CXF, that
> might be a bit more tricky, bit doesn't hurt to ask.
>
> Chances are though, it'll be faster/easier to create an m2e eclipse plugin
> for that (#3). I have commit access to the m2e discovery repo, so it'll be
> easy to get in. Now, the m2e project is not responsible for providing LMs
> for 3rd party maven plugins. So I'd suggest you open JBIDE issues for
> each of your problems.
>
> Fred
>
>
> [1]
> https://www.eclipse.org/m2e/documentation/m2e-execution-not-covered.html
> [2]
> https://www.eclipse.org/m2e/documentation/m2e-making-maven-plugins-compat.html
> [3]
> https://www.eclipse.org/m2e/documentation/m2e-extension-development.html
> [4] https://github.com/takari/m2e-discovery-catalog#m2e-discovery-catalog
>
>
> On Thu, May 5, 2016 at 10:49 AM, Brian Fitzpatrick <bfitzpat at redhat.com>
> wrote:
>
>> Hey guys,
>>
>> We've hit some maven plug-ins that aren't supported yet by m2e that we
>> use in the Fuse world... if I was to log a feature request for some of
>> these, should I put it in Eclipse? or in JBIDE?
>>
>> Or a better question, what is the policy for additions to m2e? How do we
>> petition to have plug-ins added or contribute back? These may not be
>> broadly applicable to other projects, so less apt to be pushed upstream.
>>
>> Thanks in advance.
>>
>> --Fitz
>>
>> p.s. For a bit more detail about what we're looking for...
>>
>> Importing the camel-cxf example (
>> https://github.com/jboss-fuse/quickstarts/tree/master/cxf/rest) we hit
>> three issues.
>>
>> We have an org.apache.cxf plug-ins that isn't supported yet...
>>
>>       <plugin>
>>         <groupId>org.apache.cxf</groupId>
>>         <artifactId>cxf-java2wadl-plugin</artifactId>
>>         <version>3.0.4.redhat-621084</version>
>>         <executions>
>>           <execution>
>>             <id>parsejavadoc</id>
>>             <phase>generate-sources</phase>
>>             <goals>
>>               <goal>parsejavadoc</goal>
>>             </goals>
>>           </execution>
>>           <execution>
>>             <id>process-classes</id>
>>             <phase>process-classes</phase>
>>             <goals>
>>               <goal>java2wadl</goal>
>>             </goals>
>>             <configuration>
>>               <classResourceNames>
>>
>> <classResourceName>io.fabric8.quickstarts.rest.CustomerService</classResourceName>
>>               </classResourceNames>
>>
>> <docProvider>org.apache.cxf.maven_plugin.javatowadl.ResourceMapJavaDocProvider</docProvider>
>>               <attachWadl>false</attachWadl>
>>             </configuration>
>>           </execution>
>>         </executions>
>>       </plugin>
>>
>> And a fabric8 plug-in that isn't supported yet.
>>
>>       <plugin>
>>         <groupId>io.fabric8</groupId>
>>         <artifactId>fabric-cxf-plugins</artifactId>
>>         <version>1.2.0.redhat-621084</version>
>>         <executions>
>>           <execution>
>>             <id>process-classes</id>
>>             <phase>process-classes</phase>
>>             <goals>
>>               <goal>java2swagger</goal>
>>             </goals>
>>             <configuration>
>>               <classResourceNames>
>>
>> <classResourceName>io.fabric8.quickstarts.rest.CustomerService</classResourceName>
>>               </classResourceNames>
>>               <attachSwagger>false</attachSwagger>
>>             </configuration>
>>           </execution>
>>         </executions>
>>       </plugin>
>>
>>
>> _______________________________________________
>> jbosstools-dev mailing list
>> jbosstools-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/jbosstools-dev
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jbosstools-dev/attachments/20160505/1c74cd56/attachment.html 


More information about the jbosstools-dev mailing list