It would be nice if you could configure the lifecycle-mappnig to tell the m2e MavenBuilder that the classes have been modified by a plugin execution and that it should refresh the class resources in eclipse without triggering a new incremental build.
Something like this...
<action>
<execute>
<modifiesClassFiles>true</modifiesClassFiles>
</execute>
</action>
I'm just thinkg that might remove the need to create an m2e extension to get this to work.
Cheers,
Anthony
> Date: Wed, 7 Dec 2011 07:30:08 -0500
> From: igor@xxxxxxxxxxxxxx
> To: m2e-users@xxxxxxxxxxx
> Subject: Re: [m2e-users] m2e plugin execution enhances classes but eclipse resources are then out of sync
>
> This is exactly the problem described in [1]. Here is a relevant quote:
>
> "Out-of-workspace resource changes made by Maven plugin triggered
> unexpected workspace builds. This was very indeterministic. In some
> cases projects appeared to work fine. In some cases, generated/filtered
> resources would go missing. And in some cases workspace build would go
> on forever."
>
> You need a proper m2e integration to modify .class files, <execute/>
> mapping will not work.
>
> [1] http://wiki.eclipse.org/M2E_plugin_execution_not_covered
>
> --
> Regards,
> Igor
>
> On 11-12-07 6:51 AM, Anthony Fryer wrote:
> > I have a JPA project and as part of my maven build I am enhancing the
> > classes. In eclipse have auto build enabled and in my pom.xml I have
> > configured m2e to execute the ehance goal to run as part of the build.
> > This all seems to work fine except for one issue. After the enhancer has
> > run, the class files are out of sync with eclipse. This is a problem
> > because if i try to publish to a server I get an error like "Resource is
> > out of sync with the file system:
> > '/my-project/target/classes/com/xyz/entity/MyEntity.class'.". I can't
> > seem to manually refresh the classes either, so I'm stuck at this point,
> > not being able to publish to the server.
> >
> > If i configure eclipse to auto Refresh resources automatically
> > (windows->preferences->General->Workspace->(Refresh using native hooks
> > or polling | Refresh on Access) ), then i get into a never ending build
> > cycle loop. It builds, runs the enhancer which updates the class files,
> > reloads the class files which triggers another auto build, and so on,
> > building forever.
> >
> > Could the m2e plugin update the eclipse resources after the maven
> > builder has executed, so that eclipse is then in sync with the class
> > files that could potentially get modified by the maven builder?
> >
> > The relevent sections of the pom.xml for my project are as follows...
> >
> > <plugin>
> > <groupId>org.codehaus.mojo</groupId>
> > <artifactId>openjpa-maven-plugin</artifactId>
> > <version>1.2</version>
> > <configuration>
> > <includes>**/entity/*.class</includes>
> > <excludes>**/entity/*_.class,**/entity/*$*.class</excludes>
> > </configuration>
> > <executions>
> > <execution>
> > <id>enhancer</id>
> > <phase>process-classes</phase>
> > <goals>
> > <goal>enhance</goal>
> > </goals>
> > </execution>
> > </executions>
> > </plugin>
> >
> > <pluginManagement>
> > <plugins>
> > <!--This plugin's configuration is used to store Eclipse m2e settings
> > only. It has no influence on the Maven build itself.-->
> > <plugin>
> > <groupId>org.eclipse.m2e</groupId>
> > <artifactId>lifecycle-mapping</artifactId>
> > <version>1.0.0</version>
> > <configuration>
> > <lifecycleMappingMetadata>
> > <pluginExecutions>
> > <pluginExecution>
> > <pluginExecutionFilter>
> > <groupId>org.codehaus.mojo</groupId>
> > <artifactId>
> > openjpa-maven-plugin
> > </artifactId>
> > <versionRange>[1.2,)</versionRange>
> > <goals>
> > <goal>enhance</goal>
> > </goals>
> > </pluginExecutionFilter>
> > <action>
> > <execute/>
> > </action>
> > </pluginExecution>
> > </pluginExecutions>
> > </lifecycleMappingMetadata>
> > </configuration>
> > </plugin>
> > </plugins>
> > </pluginManagement>
> >
> >
> > _______________________________________________
> > 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