On Thursday, December 8, 2011 10:38:26 PM UTC+1, Brian Chapman wrote: > > I have a maven based project that uses the jts library by > vividsolutions. jts uses an old version of xerces which is included in > the project's war (in WEB-INF/lib/). > > When I go and compile this project, I get an error from the GWT > compiler. If I exclude it during compilation (using <scope>runtime</ > scope> in the pom) everything compiles fine. Perhaps I don't > understand how the GWT compiler works under the hood, but I'd expect > the compile time class path to be independent from the actual > compiler's class path. > It's not. GWT (compiler and DevMode) load files from the classpath. See http://code.google.com/webtoolkit/doc/latest/DevGuideCompilingAndDebugging.html
> The problem comes when I want to use the hosted mode in eclipse. When > the project starts up with hosted mode, GWT uses the old xerces lib > provided by jts and throws an error. If I start the app in hosted mode > outside of eclipse using maven (mvn gwt:run) I don't get the error. > The problem with this is that I now don't have access to the debugging > capabilities of eclipse and it is a bit clunky. > You can simply edit the classpath of the launcher in Eclipse, to move gwt-dev.jar before jts. ...or actually, you should simply remove jts from the classpath of the DevMode, as server-side code is loaded from the war's WEB-INF/classes and WEB-INF/lib (as expected for a webapp). But GWT has no mean to know whether a particular dependency is client-side or server-side (or both), and neither Eclipse or Maven have a mean to configure it either, so by default the Google Plugin for Eclipse includes everything in the DevMode's classpath (and you can later manually fine-tune it). This is also one reason that makes me believe the proper way of developping with Maven is to have separate modules for client-side and server-side code (and possibly another one for shared code). It makes initial configuration a bit less straightforward: you have to run your server-side webapp in a servlet container (jetty, tomcat, whatever) and launch the DevMode in -noserver mode, and you need an additional step at build-time to copy the compiled GWT/JS code to the webapp. > There appears to be some class loading issue with the GPE that is > using the war's class path for the GWT compiler rather than have the > GWT compiler have its own class path that is unaffected by what is > used by the project. > > Has anyone seen this and do you know of any workarounds? > Workaround is to either have separate projects (hence separate classpaths) for client-side and server-side code; or fine-tune the DevMode classpath in Eclipse. -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To view this discussion on the web visit https://groups.google.com/d/msg/google-web-toolkit/-/vJ7RV-rg2iQJ. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
