2011/5/9 Daniel Danilatos <[email protected]>:
>
> For example: breaking the unit tests up into smaller pieces to run
> them more incrementally can be done now without too much hassle - and
> furthermore, the granularity of maven modules might not be high enough
> as the test cases in some modules, particularly the client ones which
> have GwtTestCases, might still take a very long time. I may of course
> have missed something, but this is what I mean when we need to put
> both alternatives in the balance, otherwise it just feels (to someone
> like me) that we're doing this out of a general enthusiasm maven.

There are two kinds of tests in a standard Maven build lifecycle: unit
tests and integration tests. While GWTTestCase are not exactly
integration tests (though not exactly unit tests either), they're
generally run in the integration test phase because of their slowness.
http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
http://mojo.codehaus.org/gwt-maven-plugin/user-guide/testing.html

(note: this information *not* from a "maven enthusiast")

>> 5)
>> How will the development cycle of the developers who are not working on this 
>> be impacted?
>
> This is the most important point. There must be absolutely no
> regression in the development cycle after switching to maven - talk of
> having to restart development mode scares me, as I've had this
> experience in the past and it's horrible. Even if hosted mode startup
> is fast, the very act of having to close it and reopen it adds another
> 5-10 seconds per iteration.

See http://mojo.codehaus.org/gwt-maven-plugin/user-guide/testing.html

But if you use Eclipse to launch DevMode (instead of mvn gwt:run), you
actually don't even need this "hack": it's just a matter of giving the
appropriate classpath to the DevMode when you launch it, which can
span several projects or use "external folders" (similar to the
build-helper thing explained in the link above, but at the Eclipse
launcher level).

In GWT/Maven projects, you only have to restart the DevMode for
server-side code, if you use the embedded server, when you change code
in a dependency: this is because classes must be in the
${war}/WEB-INF/{lib,classes} folder.
But a) you can actually hack around it, and more importantly b) this
is not an issue with WIAB as you don't actually use the embedded
server (you either run in "-noserver" mode, or for the "harness"
modules you only use client-side code).

In brief: it won't be an issue for WIAB.
(or rather, it shouldn't be, as I might have missed something, still
being new to the project)

-- 
Thomas Broyer
/tɔ.ma.bʁwa.je/

Reply via email to