Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [m2e-users] Sample Lifecycle Metadata Entry?

Igor,

Attempting to follow your advice, I added the following to my lifecycle-mapping-metadata.xml:

<lifecycleMappingMetadata>
  <pluginExecutions>
    <pluginExecution>
      <pluginExecutionFilter>
        <goals>
          <goal>generate</goal>
        </goals>
      </pluginExecutionFilter>
      <action>
        <execute>
          <runOnIncremental>false</runOnIncremental>
          <runOnConfiguration>true</runOnConfiguration>
        </execute>
      </action>
    </pluginExecution>
  </pluginExecutions>
</lifecycleMappingMetadata>

which seemed to result in a null pointer exception.

From the .log file:

3450 !ENTRY org.eclipse.core.resources 4 75 2012-08-29 17:52:37.351
3451 !MESSAGE Errors occurred during the build.
3452 !SUBENTRY 1 org.eclipse.m2e.core 4 75 2012-08-29 17:52:37.351
3453 !MESSAGE Errors running builder 'Maven Project Builder' on project 'project1'.
3454 !STACK 0
3455 java.lang.NullPointerException
3456     at org.eclipse.m2e.core.internal.lifecyclemapping.model.PluginExecutionFilter.match(PluginExecutionFilter.java:323)
3457     at org.eclipse.m2e.core.internal.lifecyclemapping.SimpleMappingMetadata     Source.getPluginExecutionMetadata(SimpleMappingMetadataSource.java:71)
3458     at org.eclipse.m2e.core.internal.lifecyclemapping.LifecycleMappingFactory.calculateEffectiveLifecycleMappingMetadata(LifecycleMappingFactory.java:     490)
3459     at org.eclipse.m2e.core.internal.lifecyclemapping.LifecycleMappingFactory.calculateEffectiveLifecycleMappingMetadata(LifecycleMappingFactory.java:     224)
3460     at org.eclipse.m2e.core.internal.lifecyclemapping.LifecycleMappingFactory.calculateLifecycleMapping(LifecycleMappingFactory.java:175)
3461     at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.setupLifecycleMapping(ProjectRegistryManager.java:527)
3462     at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.refresh(ProjectRegistryManager.java:446)
3463     at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.refresh(ProjectRegistryManager.java:328)
3464     at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.refresh(ProjectRegistryManager.java:279)
3465     at org.eclipse.m2e.core.internal.project.registry.MavenProjectManager.refresh(MavenProjectManager.java:58)
3466     at org.eclipse.m2e.core.internal.builder.MavenBuilder.build(MavenBuilder.java:87)
3467     at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:728)
3468     at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
3469     at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199)
3470     at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:239)
3471     at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:292)
3472     at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
3473     at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:295)
3474     at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:351)
3475     at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:374)
3476     at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:143)
3477     at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:241)
3478     at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

I tried adding the groupId and artifactId to the lifecycle mapping declaration but don't know that it helped...  I haven't been able to reproduce the NPE or resolve the complaints about lack of lifecycle information in the POM editor...

Am I doing something wrong?

Thanks.

Keith

On Wed, Aug 29, 2012 at 1:22 PM, Igor Fedorenko <igor@xxxxxxxxxxxxxx> wrote:


On 12-08-29 1:01 PM, Keith Barlow wrote:
The plugin is a customized xjc plugin so if I understand you correctly,
I have two options:

1.) Configure it for execute which requires adding code which uses the
plexus-build-api to make workspace changes.  (e.g. I could have the
generated files added to the build path if desired or I could just leave
that as a manual task but would still need a no-op implementation to be
executed).

Assuming the goal is to have generated files visible as java sources in
workspace, the mapping needs to

runOnConfiguration=true, such that source root folders added by the
plugin are created as Eclipse java project source folders. This does not
require use of BuildContext

runOnIncremental can be either true of false. runOnIncremental=false
does not require use of BuildContext either, but source code will only
be (re)generated during full/clean workspace build and will require
manual project refresh. For automatic generation of sources,
runOnIncremental=true and use of BuildContext is required



2.) Add it as ignore which would suppress all error messages and prevent
the plugin from being executed unless I actually do a maven build.
(which is essentially what happens now only I do get error messages.)


This will completely ignore the plugin in Eclipse. You will need to
create java source folders in Eclipse and run the code generation manually.

--
Regards,
Igor

Is that correct?

(Thanks in advance.)

Keith

On Wed, Aug 29, 2012 at 12:43 PM, Igor Fedorenko <igor@xxxxxxxxxxxxxx
<mailto:igor@xxxxxxxxxxxxxx>> wrote:

    If your maven plugin can safely participate Eclipse incremental build,
    which in practice means it can either be safely ignored or plugin code
    uses plexus BuildContext to negotiate changes, the mapping metadata can
    be embedded in maven plugin itself. See [1] for more details.

    If mapping requires Eclipse-specific logic not currently achievable
    through BuildContext, then you need to write an Eclipse plugin that
    provides the implementation of the logic and mapping xml file.

    [1] http://wiki.eclipse.org/M2E___compatible_maven_plugins

    <http://wiki.eclipse.org/M2E_compatible_maven_plugins>

    --
    Regards,
    Igor


    On 12-08-29 12:31 PM, Keith Barlow wrote:

        Hiyas,

        We have a customized maven plugin we use in our company which
        doesn't
        have lifecycle mapping metadata for it...  How do I add a local
        entry to
        the new Lifecycle Mappings preferences feature in m2e?  I looked
        at the
        developer documentation for extension development and it defines a
        lifecycle mapping xml blob but it looks like that needs to point
        to some
        kind of configurator class...  is that required for local entries?
           where would it live?

        Thanks.

        Keith

        --
        Keith Barlow

        /Software Engineer/
        *Dell Boomi*



        _________________________________________________
        m2e-users mailing list
        m2e-users@xxxxxxxxxxx <mailto:m2e-users@xxxxxxxxxxx>
        https://dev.eclipse.org/__mailman/listinfo/m2e-users
        <https://dev.eclipse.org/mailman/listinfo/m2e-users>

    _________________________________________________
    m2e-users mailing list
    m2e-users@xxxxxxxxxxx <mailto:m2e-users@xxxxxxxxxxx>
    https://dev.eclipse.org/__mailman/listinfo/m2e-users

    <https://dev.eclipse.org/mailman/listinfo/m2e-users>




--
Keith Barlow

/Software Engineer/
*Dell Boomi*



_______________________________________________
m2e-users mailing list
m2e-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/m2e-users

_______________________________________________
m2e-users mailing list
m2e-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/m2e-users



--
Keith Barlow

Software Engineer
Dell Boomi


Back to the top