Monday, April 24, 2017

Re: GWT/Maven development cycle takes much too long



On Monday, April 24, 2017 at 5:30:14 PM UTC+2, Magnus wrote:
Friends,

it seems as if I could solve the problem by adding this to the pom.xml:

      <plugin>
       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-war-plugin</artifactId>
       <version>2.6</version>
      </plugin>

As you can see in the error message, version 2.2. is used by default. By changing it to 2.6 the error disappeared!

I am happy to have a solution, but I wonder what was going on. Why istn't the newest plugin used by default? I have seen that there already is a version 3.0.0 of the plugin.

Plugin versions for default / built-in lifecycles depend on the version of Maven being used (which, in Eclipse, generally depends –by default at least– on the version of the M2Eclipse plugin).
IIRC, in recent versions of Maven, versions no longer change (so that you don't get too much different results just by updating Maven).
It happens that version 2.2 is used even in the latest 3.5.0 version: https://maven.apache.org/ref/3.5.0/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging
(same for the oldish 3.1.1: https://maven.apache.org/ref/3.1.1/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging, but 3.0.5 used an earlier version https://maven.apache.org/ref/3.0.5/maven-core/default-bindings.html#Bindings_for_war_packaging)
 
Should I hardcode the version in the pom.xml?

Yes, it's a good practice (you can either put it in build/plugins or in build/pluginManagement/plugins; most will prefer pluginManagement for "pinning" versions but both will work)

However, now that the error disappeared, I'll come back to the original question and see how it speeds up the development process.

Now that you can have "resolve dependencies from the workspace" enabled in Eclipse, the GWT Eclipse Plugin should automatically configure the launch configuration to use the Eclipse project for the library and its source folders; that means you don't need to "mvn install" and restart the dev mode. So, problem solved?
(and with a reactor build, using and configuring net.ltgt.gwt.maven:gwt-maven-plugin:devmode in the root project, you get a similar behavior, from the command line)

Note that this is for client-side dependencies; things might/will be different for server-side dependencies. The GWT Eclipse Plugin has good integration with Eclipse WTP to make things even better (I've been told). See the videos you've been pointed to several times already.
Outside Eclipse, you'd have to run "mvn package -Dgwt.compiler.skip" to re-package the webapp so that devmode can pick up the new JAR for the lib (with "refresh server"). Though I'd recommend use gwt:codeserver instead of gwt:devmode and use something else for the server-side (such as tomcat7:run, or possibly jetty:start with some ugly hacks).

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment