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 <[email protected]>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<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.**calculateEffectiveLifecycleMap**pingMetadata(**
>> LifecycleMappingFactory.java:
>> 490)
>> 3459 at
>> org.eclipse.m2e.core.internal.**lifecyclemapping.**
>> LifecycleMappingFactory.**calculateEffectiveLifecycleMap**pingMetadata(**
>> 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 <[email protected]
>> <mailto:[email protected]>> 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
>> <[email protected] <mailto:[email protected]>
>> <mailto:[email protected] <mailto:[email protected]>>> 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>
>> >
>>
>>
>>
>> <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
>> [email protected] <mailto:[email protected]>
>> <mailto:[email protected] <mailto:[email protected]>**>
>>
>> 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>
>> >
>>
>> <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
>> [email protected] <mailto:[email protected]>
>> <mailto:[email protected] <mailto:[email protected]>**>
>>
>> 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>
>> >
>>
>>
>>
>> <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
>> [email protected] <mailto:[email protected]>
>>
>> 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
>> [email protected] <mailto:[email protected]>
>>
>> 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
>> [email protected]
>> https://dev.eclipse.org/**mailman/listinfo/m2e-users<https://dev.eclipse.org/mailman/listinfo/m2e-users>
>>
>> ______________________________**_________________
> m2e-users mailing list
> [email protected]
> 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
[email protected]
https://dev.eclipse.org/mailman/listinfo/m2e-users