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,

No, I am referring to the lifecycle-mapping-metadata.xml file referenced in the Eclipse Preferences->Maven->Lifecycle Mappings which I currently have created a file in the default location of "~/workspace/.metadata/.plugins/org.eclipse.m2e.core/lifecycle-mapping/metadata.xml"  (NOTE: I have the full path even though I only wrote out the relative one here.)

I hadn't tried updating project info before but did not and am definitively getting a null pointer both with and without specifing groupId and artifactId.  Here are the NPEs:

Without groupId and artifactId:

4452 !ENTRY org.eclipse.core.jobs 4 2 2012-08-30 10:25:28.180
4453 !MESSAGE An internal error occurred during: "Updating Maven Project".
4454 !STACK 0
4455 java.lang.NullPointerException
4456     at org.eclipse.m2e.core.internal.lifecyclemapping.model.PluginExecutionFilter.match(PluginExecutionFilter.java:323)
4457     at org.eclipse.m2e.core.internal.lifecyclemapping.SimpleMappingMetadataSource.getPluginExecutionMetadata(SimpleMappingMetadataSource.java:71)
4458     at org.eclipse.m2e.core.internal.lifecyclemapping.LifecycleMappingFactory.calculateEffectiveLifecycleMappingMetadata(LifecycleMappingFactory.java:     490)
4459     at org.eclipse.m2e.core.internal.lifecyclemapping.LifecycleMappingFactory.calculateEffectiveLifecycleMappingMetadata(LifecycleMappingFactory.java:     224)
4460     at org.eclipse.m2e.core.internal.lifecyclemapping.LifecycleMappingFactory.calculateLifecycleMapping(LifecycleMappingFactory.java:175)
4461     at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.setupLifecycleMapping(ProjectRegistryManager.java:527)
4462     at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.refresh(ProjectRegistryManager.java:446)
4463     at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.refresh(ProjectRegistryManager.java:328)
4464     at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.refresh(ProjectRegistryManager.java:279)
4465     at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.updateProjectConfiguration(ProjectConfigurationManager.java:323)
4466     at org.eclipse.m2e.core.ui.internal.UpdateMavenProjectJob.runInWorkspace(UpdateMavenProjectJob.java:74)
4467     at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
4468     at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

With groupId and artifactId:

4473 !ENTRY org.eclipse.core.jobs 4 2 2012-08-30 10:28:28.662
4474 !MESSAGE An internal error occurred during: "Updating Maven Project".
4475 !STACK 0
4476 java.lang.NullPointerException
4477     at org.eclipse.m2e.core.internal.lifecyclemapping.model.PluginExecutionFilter.match(PluginExecutionFilter.java:337)
4478     at org.eclipse.m2e.core.internal.lifecyclemapping.SimpleMappingMetadataSource.getPluginExecutionMetadata(SimpleMappingMetadataSource.java:71)
4479     at org.eclipse.m2e.core.internal.lifecyclemapping.LifecycleMappingFactory.calculateEffectiveLifecycleMappingMetadata(LifecycleMappingFactory.java:     490)
4480     at org.eclipse.m2e.core.internal.lifecyclemapping.LifecycleMappingFactory.calculateEffectiveLifecycleMappingMetadata(LifecycleMappingFactory.java:     224)
4481     at org.eclipse.m2e.core.internal.lifecyclemapping.LifecycleMappingFactory.calculateLifecycleMapping(LifecycleMappingFactory.java:175)
4482     at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.setupLifecycleMapping(ProjectRegistryManager.java:527)
4483     at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.refresh(ProjectRegistryManager.java:446)
4484     at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.refresh(ProjectRegistryManager.java:328)
4485     at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.refresh(ProjectRegistryManager.java:279)
4486     at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.updateProjectConfiguration(ProjectConfigurationManager.java:323)
4487     at org.eclipse.m2e.core.ui.internal.UpdateMavenProjectJob.runInWorkspace(UpdateMavenProjectJob.java:74)
4488     at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
4489     at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

Thanks.

Keith

On Wed, Aug 29, 2012 at 10:22 PM, Igor Fedorenko <igor@xxxxxxxxxxxxxx> wrote:
You are talking about META-INF/m2e/lifecycle-mapping-metadata.xml inside
your maven plugin jar, right? For the record, m2e is able to use mapping
metadata from test maven plugin [1].

Do you Update Project Configuration after changing mapping metadata?
There may be a problem with -SNAPSHOT plugins, so you may need to
restart Eclipse for m2e to pick up new metadata.


[1] https://github.com/sonatype/m2e-core-tests/blob/master/org.eclipse.m2e.tests/repositories/testrepo-src/test-embeddedmapping-plugin/src/main/resources/META-INF/m2e/lifecycle-mapping-metadata.xml

--
Regards,
Igor


On 12-08-29 6:07 PM, Keith Barlow wrote:
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
<mailto: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>
        <mailto: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>


             <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>
        <mailto:m2e-users@xxxxxxxxxxx <mailto:m2e-users@xxxxxxxxxxx>>
        https://dev.eclipse.org/____mailman/listinfo/m2e-users
        <https://dev.eclipse.org/__mailman/listinfo/m2e-users>
                 <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>
        <mailto:m2e-users@xxxxxxxxxxx <mailto:m2e-users@xxxxxxxxxxx>>
        https://dev.eclipse.org/____mailman/listinfo/m2e-users
        <https://dev.eclipse.org/__mailman/listinfo/m2e-users>


             <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 <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