Hi Steve,

I think I have what you are after.

What does this pom.xml do ?

a. mvn package  - Creates the war, compiles the java source code.
b. mvn jetty:run - compiles the GWT to JS into the target/war
directory and launches jetty (with a debug profile, you can start
eclipse debugger onto it)
c. with a launch configuration, Run GWT2 DevMode and run the GWT Jetty
in eclipse, with the Browser plugin of your choice as google has
intended it.
d. a separate launch configuration, (not yet polished)  that starts
the DevMode as -noserver, Combine this with (b) and you have Maven
running jetty and Eclipse running te debugger.. and you can debug the
two separate instances.

What I have NOT yet worked out. the GWT DevMode compiles the GWT
classes to JS, and lays the into my src/main/webapp folder. I don't
like this as my Project is under source control, and the JS is a
compile artefact, not something I want to checkin.
The compilation of the JS and placing in the src/main/webapp is a
design of the DevMode, kind of required because jetty needs to serve
out the JS files.
 .. other attempts to change it, short of making a new DevMode
ServletContainer (am working on this) prove fruitless.

Here is what you will want.

-=============== Snippets from pom.xml ==================-

....
  <properties>
     <version-gwt>2.0.3</version-gwt>
  </properties>

....
  <dependencies>

    <dependency>
      <groupId>com.google.gwt</groupId>
      <artifactId>gwt-user</artifactId>
      <version>${version-gwt}</version>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>com.google.gwt</groupId>
      <artifactId>gwt-dev</artifactId>
      <version>${version-gwt}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>com.google.gwt</groupId>
      <artifactId>gwt-servlet</artifactId>
      <version>${version-gwt}</version>
      <scope>runtime</scope>
    </dependency>

  </dependencies>
  <build>
    <plugins>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>maven-jetty-plugin</artifactId>
                <version>6.1.16</version>
        <configuration>
          <webAppConfig>
            <contextPath>/</contextPath>
            <baseResource
implementation="org.mortbay.resource.ResourceCollection">
              <!-- this magic helps us have static resources in src/
main/webapp, and with the gwt-maven-plugin, the GWT Compile JS in
target/ -->
              <resources>src/main/webapp,target/sample-gwt-webapp</
resources>
            </baseResource>
          </webAppConfig>
          <connectors>
            <connector
implementation="org.mortbay.jetty.nio.SelectChannelConnector">
              <port>9977</port>
              <maxIdleTime>60000</maxIdleTime>
            </connector>
          </connectors>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>gwt-maven-plugin</artifactId>
        <!-- version>1.1</version -->
        <configuration>
          <hostedWebapp>${project.build.directory}/$
{project.artifactId}</hostedWebapp>
          <module>org.mygwt.gwtsample.ui.SampleStackPanel</module>
        </configuration>
        <executions>
          <execution>
            <id>compile-gwt</id>
            <phase>compile</phase>
            <goals>
              <goal>compile</goal>
            </goals>
          </execution>
          <execution>
            <id>generate-async-gwt</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>generateAsync</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-eclipse-plugin</artifactId>
        <version>2.8</version>
        <configuration>
          <additionalBuildcommands>
            <buildCommand>
 
<name>com.google.gdt.eclipse.core.webAppProjectValidator</name>
            </buildCommand>
            <buildCommand>
              <name>com.google.gwt.eclipse.core.gwtProjectValidator</
name>
            </buildCommand>
          </additionalBuildcommands>
          <classpathContainers>
 
<classpathContainer>com.google.gwt.eclipse.core.GWT_CONTAINER</
classpathContainer>
 
<classpathContainer>org.eclipse.jdt.launching.JRE_CONTAINER</
classpathContainer>
          </classpathContainers>
                  <!-- we need to exclude the dev and user libs from maven 
eclipse
adding them to the .classpath
                       as 1. they are already provided by
com.google.gwt.eclipse.core.GWT_CONTAINER
                              2. the GWT Plugin complains that it cannot find a 
GWT SDK, if
these two are in there
                                     I found, if I moved the GWT SDK Container 
(properties in
eclipse, move build path dep) up the tree
                                         above these two jars, the problem went 
away.. so .. just
removing  them works, as you don't have
                                         control over the order of deps in the 
.classpath, by the maven-
eclipse-plugin
                                we need these two jars in our pom, for the 
gwt-maven-plugin (which
compiles our final GWT classes)
                  -->
                  <excludes>
                    <exclude>com.google.gwt:gwt-dev</exclude>
                        <exclude>com.google.gwt:gwt-user</exclude>
              </excludes>
          <additionalProjectnatures>
            <projectnature>org.eclipse.jdt.core.javanature</
projectnature>
 
<projectnature>org.springframework.ide.eclipse.core.springnature</
projectnature>
            <projectnature>com.google.gwt.eclipse.core.gwtNature</
projectnature>
          </additionalProjectnatures>
        </configuration>
      </plugin>
    </plugins>
    <!--
                        by default the project id and version are the
final name, we don't
                        want the version And this matches the GWT
plugins job of compiling to
                        the same hostedWebApp folder (above)
                -->
    <finalName>${project.artifactId}</finalName>
  </build>

-=============== launch configuration files in src/eclipse
==================-

No Server Launch - In these launch configurations - change sample-gwt-
webapp to your project name (there is a better eclipse variable
project_loc but I could not seem to get it working .. so it is kind of
hard coded in these launch configs.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="com.google.gdt.eclipse.suite.webapp">
<booleanAttribute
key="com.google.gdt.eclipse.core.AUTO_PORT_SELECTION" value="true"/>
<booleanAttribute key="com.google.gdt.eclipse.core.RUN_SERVER"
value="false"/>
<stringAttribute
key="com.google.gdt.eclipse.suiteMainTypeProcessor.PREVIOUSLY_SET_MAIN_TYPE_NAME"
value="com.google.gwt.dev.GWTShell"/>
<booleanAttribute
key="com.google.gdt.eclipse.suiteWarArgumentProcessor.IS_WAR_FROM_PROJECT_PROPERTIES"
value="true"/>
<stringAttribute key="com.google.gwt.eclipse.core.URL" value="http://
localhost:9977/index.jsp"/>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/sample-gwt-webapp"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="4"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
</listAttribute>
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER"
value="com.google.gwt.eclipse.core.moduleClasspathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE"
value="com.google.gwt.dev.DevMode"/>
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS"
value="-noserver -war &quot;${workspace_loc:sample-gwt-webapp/target}/
eclipse-gwt-war&quot; -startupUrl http://localhost:9977/index.jsp -
logLevel INFO org.mygwt.gwtsample.ui.SampleStackPanel"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR"
value="sample-gwt-webapp"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-
Xmx512m"/>
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY"
value="${workspace_loc:sample-gwt-webapp/target}"/>
</launchConfiguration>


--- The DevMode launcher.


<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="com.google.gdt.eclipse.suite.webapp">
<booleanAttribute
key="com.google.gdt.eclipse.core.AUTO_PORT_SELECTION" value="true"/>
<stringAttribute
key="com.google.gdt.eclipse.suiteMainTypeProcessor.PREVIOUSLY_SET_MAIN_TYPE_NAME"
value="com.google.gwt.dev.GWTShell"/>
<booleanAttribute
key="com.google.gdt.eclipse.suiteWarArgumentProcessor.IS_WAR_FROM_PROJECT_PROPERTIES"
value="true"/>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/sample-gwt-webapp"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="4"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
</listAttribute>
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER"
value="com.google.gwt.eclipse.core.moduleClasspathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE"
value="com.google.gwt.dev.DevMode"/>
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS"
value="-logLevel INFO -war &quot;${workspace_loc:sample-gwt-webapp/src/
main/webapp}&quot; -gen &quot;${workspace_loc:sample-gwt-webapp/target}
&quot; -remoteUI &quot;${gwt_remote_ui_server_port}:${unique_id}&quot;
-logLevel INFO -port auto org.mygwt.gwtsample.ui.SampleStackPanel"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR"
value="sample-gwt-webapp"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-
Xmx512m"/>
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY"
value="${workspace_loc:sample-gwt-webapp/target}"/>
</launchConfiguration>


Hope that helps..

I am working on a replacement DevMode Jetty Container which will do
exactly what we will need it to do for Maven. Stay tuned.

Ramon
On Apr 18, 6:55 pm, Steve <steveahlst...@gmail.com> wrote:
> I'm getting very frustrated -- reading dozens of messages, faqs,
> whatever I can find on the subject, but I haven't found all the info I
> need in one place and haven't been able to piece it all together ...
> maybe I just missed it, but hopefully someone here can help.
>
> What I'd like to do ...
>
> Create a GWT project, useMaveninstead of Ant to build.  Be able to
> debug in DevMode, be able to "mvn package" and manually deploy my war
> to a container.
>
> Using Eclipse (3.5.2), m2eclipse, GPE 1.3.2 -- what do I need to do?
> What is the directory structure I need?  Is there amavenarchetype to
> create the directory structure?
>
> I tried the MavenAppRpc project.  I was successful in building it and
> deploying the war to Tomcat.  However, I could never get it to work in
> DevMode.
>
> Is there a 1-2-3 type tutorial available that can get me started?
>
> Thanks
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Google Web Toolkit" group.
> To post to this group, send email to google-web-tool...@googlegroups.com.
> To unsubscribe from this group, send email to 
> google-web-toolkit+unsubscr...@googlegroups.com.
> For more options, visit this group 
> athttp://groups.google.com/group/google-web-toolkit?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to google-web-tool...@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to