Git Product home page Git Product logo

Comments (10)

agentgt avatar agentgt commented on July 25, 2024 2

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

from rocker.

jjlauer avatar jjlauer commented on July 25, 2024 1

from rocker.

jjlauer avatar jjlauer commented on July 25, 2024

from rocker.

jknack avatar jknack commented on July 25, 2024

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

from rocker.

jknack avatar jknack commented on July 25, 2024

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>

from rocker.

jjlauer avatar jjlauer commented on July 25, 2024

from rocker.

jknack avatar jknack commented on July 25, 2024

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

from rocker.

jjlauer avatar jjlauer commented on July 25, 2024

from rocker.

jknack avatar jknack commented on July 25, 2024

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

from rocker.

jjlauer avatar jjlauer commented on July 25, 2024

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

from rocker.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.