Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Question: maven plugin and m2e Eclipse plugin #50

Open
jknack opened this issue Mar 17, 2017 · 10 comments
Open

Question: maven plugin and m2e Eclipse plugin #50

jknack opened this issue Mar 17, 2017 · 10 comments

Comments

@jknack
Copy link

jknack commented Mar 17, 2017

Rocker maven plugin doesn't work with m2e Eclipse plugin. Is there any workaround?

Thanks.

@jjlauer
Copy link
Member

jjlauer commented Mar 17, 2017 via email

@jknack
Copy link
Author

jknack commented Mar 17, 2017

Hi @jjlauer

Well I'm kind of new to m2e too (not Eclipse). M2e given me the following error:

Plugin execution not covered by lifecycle configuration: com.fizzed:rocker-maven-plugin:0.16.0:generate (execution: generate-rocker-templates, phase: generate-sources)	pom.xml Maven Project Build Lifecycle Mapping

I successfully used other code generator (usually based on APT) and for example when you recompile something in Eclipse, m2e successfully rerun the plugin and fire/run the maven plugin keeping generated code up-to-date.

This isn't the case for Rocker :(

@jknack
Copy link
Author

jknack commented Mar 17, 2017

Found it: http://www.eclipse.org/m2e/documentation/m2e-execution-not-covered.html

<build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.eclipse.m2e</groupId>
          <artifactId>lifecycle-mapping</artifactId>
          <version>1.0.0</version>
          <configuration>
            <lifecycleMappingMetadata>
              <pluginExecutions>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>com.fizzed</groupId>
                    <artifactId>rocker-maven-plugin</artifactId>
                    <versionRange>[${rocker.version},)</versionRange>
                    <goals>
                      <goal>generate</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <execute>
                      <runOnIncremental>true</runOnIncremental>
                    </execute>
                  </action>
                </pluginExecution>
              </pluginExecutions>
            </lifecycleMappingMetadata>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

@jjlauer
Copy link
Member

jjlauer commented Mar 17, 2017 via email

@jknack
Copy link
Author

jknack commented Mar 17, 2017

It more like a hack. We must provide all the configuration inside pluginManagement (so it never runs from a normal build). Then m2e lookup there and works as a proxy/delegate.

With this, you change a .rocker.html file inside Eclipse and it automatically generate the source code!!!

Another small tweak we need to do is to turn off touchFile. Otherwise, m2e trigger a build and loop forever.

Finally, I'm going to add your excellent library as a jooby module :)

@jjlauer
Copy link
Member

jjlauer commented Mar 17, 2017 via email

@jjlauer
Copy link
Member

jjlauer commented Mar 17, 2017 via email

@jknack
Copy link
Author

jknack commented Mar 26, 2017

Here is: http://jooby.org/doc/rocker

@jjlauer
Copy link
Member

jjlauer commented Mar 27, 2017

@jknack Added a new section to the README. https://github.com/fizzed/rocker#framework-integrations

@agentgt
Copy link

agentgt commented May 1, 2019

@jjlauer In theory you can easily make the rocker maven plugin compatible with m2e (eclipse maven) without requiring library consumers to do the configuration that @jknack did by just following these instructions: https://www.eclipse.org/m2e/documentation/m2e-making-maven-plugins-compat.html#mapping

The m2e plugin basically looks for similar XML to the build section of @jknack pom via a ServiceLocator-like pattern.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants