Norman, thanks for the tips.

So in addition to simply running the Maven plugin goals (i.e. generating
sources from the relevant Android XML resources) do I also have access to
other aspects of the Eclipse workspace? For example, I need the generated
sources output folder to be marked as a source folder in the workspace -- I
assume there must be some way to do so, since connectors like Antlr and
JAXB do it, but it's not 100% clear to me which class is responsible for
that.


On Wed, Feb 5, 2014 at 11:57 AM, Norman Cohen <[email protected]> wrote:

> Thomas,
>
> As one who has recently struggled with the (lack of) m2e documentation to
> write my own connector, I feel your pain.
>
> As I understand it, a "connector" is simply a class
> extending 
> org.eclipse.m2e.core.project.configurator.MojoExecutionBuildParticipant,
> which you write and hook into the m2e framework as follows:
>
>    - You write a class
>    extending 
> org.eclipse.m2e.core.project.configurator.AbstractProjectConfigurator
>    and override its getBuildParticipant method to return an instance of your
>    build-participant class.
>    - In plugin.xml, you use the org.eclipse.m2e.core.projectConfigurators
>    extension point to declare your class as a project configurator and to
>    assign a configurator ID to it.
>    - In lifecycle-mapping-metadata.xml, you use the configurator ID to
>    associate the configurator to a particular Maven goal.
>
> The m2e Eclipse plugin registers its class
> org.eclipse.m2e.core.internal.builder.MavenBuilder at the
> org.eclipse.m2e.core.internal.builder.MavenBuilder at this extension point,
> so that MavenBuilder.build() is invoked upon Eclipse resource-change events.
> The MavenBuilder.build() method examines the lifecycle mapping to
> determine which build participants should be invoked, and in which order.
> It then iterates over these build participants and, for those participants
> that are “applicable” to the delta of the resource change and the kind of
> build (full or incremental), invokes the build method of the build
> participant. (All participants are applicable to a full build. A
> participant is applicable to an incremental build if the resource delta is
> non-null or the participant’s callOnEmptyDelta() method returns true.)
>
> That's just the tip of the iceberg, but perhaps it can get you started.
>
> --
> Norman Cohen
> Cloud Platform developer tools
> Google NYC
>
>
> _______________________________________________
> m2e-users mailing list
> [email protected]
> https://dev.eclipse.org/mailman/listinfo/m2e-users
>
>
_______________________________________________
m2e-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/m2e-users

Reply via email to