Monday, April 3, 2017

Re: GWT 2.7 SuperDevMode Compile Times

@DavidN - Wow, how can anyone work productively with 30+ mins ??? 


On Monday, April 3, 2017 at 7:48:15 PM UTC+8, DavidN wrote:
You are complaining of a startup of 1 minute ? I know some projects that have 30+ minutes with GWT 2.7! In those cases there are a lot of reasons why their compile time is so long.

In my current app I also have about 2 minutes startup time and an incremental reload of about 5 seconds. We are also using GIN/UiBinder and some custom generator classes. We do not use RequestFactory nor GWT-RPC (which was causing the 30+ minutes in the other projects) but we use GWT-Jackson and RestyGWT. And we are also using GWTP as a MVP framework.

I don't know how efficient GIN and GWT-Jackson are at generating code. The amount of object types that go over the wire grows very quickly so I am afraid that this overal compile time will only increase. Will switching to APT be a solution for this ?

On Mon, 3 Apr 2017 at 13:02, Thomas Broyer <t.br...@gmail.com> wrote:


On Monday, April 3, 2017 at 10:49:00 AM UTC+2, Thomas Buckel wrote:
Also wondering how to split client and server into different mvn modules when using ReqFactory - @ProxyForName and @ServiceName should work for class names, however they still require a class reference to the server-side Entity/Service locator.

No, they're all strings (names).
See the modular-requestfactory (or dagger-guice-rf-activities) archetype at https://github.com/tbroyer/gwt-maven-archetypes for an example (tl;dr: runs the ValidationTool explicitly in the server module).
An alternative would be to move entities, services and their locators to a separate module so you can have "shared" (with the RF interfaces) depend on "server" (with scope=provided), "client" depend on "shared" (but not "server" due to the provided scope, but an explicit exclusion could work too) and invoking the GWT compiler, and "webapp" depending on both "shared" and "server" (and "client" as an overlay). Of course, if you also have enums, then "shared" cannot depend on "server" as "server" would also need to depend on "shared", which leads to yet another module just for the enums, and this becomes overly complex… (alternatively, the enums could be in "server", and "shared" could exclude all transitive dependencies from its "server" dependency; that'd bring the server code into the GWT classpath, but none of the server-side dependencies)

--

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