Hey Keith, thank you very much for all the details. For now we actually decided to stick with the goals provided by gwt-maven, so I'm sorry I did not check your points by now. I'll create a new project and check your advices, especially the correct source folders in the GEP launch config, which actually was the only thing I did not look after.
I'll drop in a message soon. Andreas On 15 Mrz., 21:05, Keith Platfoot <[email protected]> wrote: > @Andreas: Forgot to mention that if you're *not* using Eclipse for Java > EE, when you make changes to server-side code, you will also need to restart > GWT embedded Jetty instance. For GWT 2.0+, click the Restart Server button > in the Development Mode view, or for older versions of GWT, the Reload > Server button on the Hosted Mode shell toolbar. > > Keith > > On Mon, Mar 15, 2010 at 2:27 PM, Keith Platfoot <[email protected]>wrote: > > > Hi Andreas, > > > It looks like you're following the correct procedure, and you indicated > > that you were able to load the application in devmode, but you're not seeing > > code changes reflected when you Refresh the browser. It might help if I > > explain briefly how changes are *supposed* to be reflected, and suggest a > > few ideas for things to check if refresh is not working: > > > - Client-side code changes should *always* be reflected when you click > > Refresh in your browser during a devmode session, regardless of your source > > folders' build output paths. This is because GWT devmode is actually using > > your .java source files, not the compiled .class files. Double-check in > > your launch configuration's Classpath tab that your source folders appear at > > the top of the User Entries section. If your gwt:run goal *does*correctly > > reflect code changes in devmode when you Refresh, it would be > > useful to compare the devmode process arguments in that case to the devmode > > process created by the Eclipse launch configuration (you can find the > > arguments in Eclipse by right-click > Properties the "java" process in the > > stacktrace view in the Debug perspective). Let me know if there are > > differences between the two sets of arguments. > > > - Server-side code changes will only be reflected if the compiled .class > > files are propagated to your runtime WAR directory's WEB-INF/classes > > directory. As you mentioned, one way to do this is to set your source > > folders' build output paths to your runtime WAR directory's WEB-INF/classes > > directory. Of course, Eclipse must also be configured to build > > automatically (Project > Build Automatically). If server-side code refresh > > is still not working, you might try making a change, and then manually > > verifying that the runtime WAR directory is getting the new .class file in > > WEB-INF/classes. > > > - Changes to your HTML/CSS/other static resources will need to be mirrored > > in your runtime WAR directory (similar to server-side code changes). I'm > > not aware of any out-of-the-box solution for this if you're using a standard > > Eclipse distribution (Eclipse Classic or Eclipse for Java developers). > > You'll need to stop devmode, do another 'mvn clean package', and then > > launch devmode again. However, if you're using Eclipse for Java EE, there > > is a way to configure it to automatically push WAR resource changes while > > devmode is running (this should answer your question in your #3 step). > > > Basically, you start by converting your project into a Dynamic Web Project. > > I don't know if you can automatically migrate an existing project, but it > > should be possible to create a new Dynamic Web Project and then simply > > import your original project's source folders and build path entries. Next, > > you'll need to configure the Eclipse project to use 'src/main/webapp' as > > your WAR directory instead of 'WebContent' (Eclipse default). Close Eclipse > > and edit the file at: <project > > root>/.settings/org.eclipse.wst.common.component. Find the <wb-resource> > > element with a 'source-path' attribute of '/WebContent'. Change the > > attribute value to '/src/main/webapp', save the file, and re-open Eclipse. > > Now, when you start the project's configured server (Tomcat, Jetty, etc... > > define a server in the Servers view), Eclipse will automatically propagate > > changes in your source code and static resource files to your runtime WAR > > directory. However, in Eclipse for Java EE, this runtime WAR directory will > > *not* be 'target/<exploded WAR>'. Eclipse will instead create a staging > > directory in a temporary location (by default, > > <workspace>/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/<project>) > > and *this* is the WAR directory you'll need to select when launching the > > Web Application launch configuration. One more note: Eclipse for Java EE > > will also automatically push your updated .class files into > > <WAR>/WEB-INF/classes, so no need to manually change your source folders' > > build output paths. > > > Does that all make sense? At launch, we'll be adding a couple new FAQ > > entries to our documentation to explain the process of using the Google > > plugin with Maven, with Eclipse for Java EE, and with both at once. > > Hopefully my instructions here will suffice in the meanwhile. Let me know > > if you need any further explanation or assistance. > > > Keith > > > On Sun, Mar 14, 2010 at 2:03 PM, andreas > > <[email protected]>wrote: > > >> Hey Keith, > > >> thanks for this detailed information. I just went through and followed > >> them step by step. > > >> I started by creating a new maven project using gwt-maven archetype. I > >> changed its pom.xml to use current versions of GWT 2.0.3 and Java 6. > >> Then I enabled the GEP. > > >> 1. Set the war directoy as you said. When I first tried, I forgot to > >> uncheck the "launch" checkbox but did it this time. > > >> 2. Did not have to delete old launch configurations since this is a > >> new project. Created one by launching it via "Run As.." -> "Web > >> Application" from GEP > > >> 3. I use Eclipse EE. On that first launch, I pointed the runtime WAR > >> directory to the folder under "target" you mentioned. One thing I did > >> not clearly understand: you said "unless you're also using Eclipse > >> EE..."; well I do so where else should or could the runtime WAR > >> directory point to? I also did a 'mvn clean package'. > > >> 4. Yes, yes and yes. The web application is displayed in the browser > >> as expected. > > >> 5. Programm args: > >> -remoteUI ${gwt_remote_ui_server_port}:${unique_id} -startupUrl > >> index.html -logLevel INFO -port 8888 -war /home/ahorst/workspace/ > >> GWTEntryApp/target/GWTEntryApp-0.0.1-SNAPSHOT > >> de.se.proced.GWTEntryApp.Application > > >> VM args: > >> -Xmx512m > > >> Working directory: > >> /GWTEntryApp/target/GWTEntryApp-0.0.1-SNAPSHOT > > >> So far it all worked. Unfortunately the "refresh" code changes does > >> not work. I set output folders of src/main/java and src/main/resources > >> to the WEB-INF/classes inside the working directory. Did this through > >> the build path configuration. > > >> Code changes are not reflected upon refresh; neither in the browser > >> (F5) or by restarting the server in the Development view. > > >> Nevertheless when I launch the gwt:run goal, it works. > > >> Could it be a gwt-maven property that stops "refresh" code changes? > >> Besides the GWT and Java version I did not change anything. I guess I > >> have to stick to the gwt-maven docs to find out if the exploded WAR is > >> not set properly. > > >> On 12 Mrz., 18:15, Keith Platfoot <[email protected]> wrote: > >> > Hi Andreas, > > >> > Hm, not sure why you're seeing that error. Let me ask a few questions > >> to > >> > see if we can get to the bottom of this. > > >> > 1. You set the WAR directory to 'src/main/webapp' via the Google > Web > >> > Application project properties page, right? Did you also uncheck the > >> box > >> > below that says 'Launch and deploy from this directory'? This is > >> necessary > >> > because the 'src/main/webapp' directory is not a complete WAR directory > >> > (WEB-INF/lib and WEB-INF/classes are empty, etc.). > > >> > 2. Are you launching the project using the regular Run/Debug As > Web > >> > Application shortcut? Did you make sure to first delete any other Web > >> > Application launch configurations associated with the project? > > >> > 3. When you launch, you should be prompted to select the runtime WAR > >> > directory. Unless you're also using Eclipse for Java EE, you'll > >> probably > >> > want to first do a 'mvn clean package' and then select the exploded WAR > >> in > >> > '/target/<AppName>-<version>' as your runtime WAR. > > >> > 4. When you launch, are you seeing the Development Mode view appear at > >> the > >> > bottom of your workspace, with a URL to open in your browser? Does the > >> URL > >> > have a ?gwt.codesvr=x.x.x.x:9997 at the end? Does your web browser have > >> the > >> > GWT Development Mode plugin installed? (the browser should load a page > >> to > >> > prompt you if it's not installed). > > >> > 5. After you launch, what are the arguments in the generated launch > >> > configuration? One of the features of 1.3 is the ability to > >> inspect/tweak > >> > the arguments via the regular Arguments tab in the launch configuration > >> > dialog. Let me know what your exact argument set is. > > >> > Also: to see code changes reflected when you hit refresh, you'll need to > >> get > >> > the class files into your runtime WAR directory. One simple way to do > >> this > >> > is by changing your build output path (probably just for src/main/java > >> and > >> > src/main/resources) to the WEB-INF/classes directory in your runtime > >> WAR. > >> > This works, but it is a bit hacky. > > >> > Alternatively, you can convert your project into a Dynamic Web Project > >> in > >> > Eclipse for Java EE, which provides automatic refresh-on-change behavior > >> out > >> > of the box. It also creates a staging WAR directory by default so you > >> don't > >> > have to use the exploded WAR under /target. If you're interested in > >> this > >> > approach, I can send you detailed instructions (which will also appear > >> in > >> > our FAQs after 1.3 launch). > > >> > Keith > > >> > On Fri, Mar 12, 2010 at 8:19 AM, andreas < > >> [email protected]>wrote: > > >> > > Hi Keith, > > >> > > we are happy to test the preview version. > > >> > > We are using Maven and the gwt-maven-project layout for our projects. > >> > > We loved the dependency management and also clear code structure > >> > > coming along with Maven but ran in the same problem > > ... > > Erfahren Sie mehr » -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. 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.
