Java Maven GWT 2.0和Eclipse

Java Maven GWT 2.0和Eclipse,java,eclipse,maven-2,gwt,Java,Eclipse,Maven 2,Gwt,有人知道使用maven和eclipse在新的GWT 2.0版本中创建项目的好指南吗?我在让他们配合得很好方面遇到了很多问题 值得一提的是,我可以使用maven eclipse插件创建一个gwt项目,该插件工作得很好,但将其移植到maven并不起作用(因此提供一个指南将非常有用) 同样,我可以使用maven插件(gwt maven插件),但当我将其导入eclipse(导入->物化maven项目)时,它不会被识别为gwt项目 谢谢编辑:我已经用OP提供的附加步骤更新了我的答案。详情请参见OP 我刚刚

有人知道使用maven和eclipse在新的GWT 2.0版本中创建项目的好指南吗?我在让他们配合得很好方面遇到了很多问题

值得一提的是,我可以使用maven eclipse插件创建一个gwt项目,该插件工作得很好,但将其移植到maven并不起作用(因此提供一个指南将非常有用)

同样,我可以使用maven插件(gwt maven插件),但当我将其导入eclipse(导入->物化maven项目)时,它不会被识别为gwt项目


谢谢

编辑:我已经用OP提供的附加步骤更新了我的答案。详情请参见OP

我刚刚破坏了Eclipse安装程序,试图安装最新版本的Google插件for Eclipse(适用于GWT 2.0),因此我无法确认所有内容,但是,让我们假设满足以下先决条件:

  • Eclipse 3.5
  • Eclipse的Google插件(从安装,请参阅)
  • 用于Eclipse的m2eclipse插件(从安装)
您是否尝试:

  • 从Eclipse创建一个新项目(新建>其他…然后选择Maven项目并选择gwt Maven插件原型)

  • 编辑生成的
    pom.xml
    ,将
    gwt.version
    属性更新为
    2.0.0
    (已在central repo中发布),添加存储库并将
    gwt maven插件
    版本设置为
    1.2-SNAPSHOT
    (central中未发布版本1.2,这应该很快就会发生)
    1.2
    (也已在中环发布)

  • 添加到gwt maven插件配置中,如中所述

  • 按照前面步骤中提到的页面中的说明配置maven war插件

  • 通过设置Use GoogleWeb Toolkit复选框从项目首选项手动启用项目上的GWT此步骤是不必要的,因为您将使用Maven运行配置而不是Eclipse的GWT插件构建/运行

  • 这就是我的
    pom.xml
    实际上的样子:

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
      <!--
        GWT-Maven archetype generated POM
      -->
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.mycompany.demo</groupId>
      <artifactId>my-gwtapp</artifactId>
      <packaging>war</packaging>
      <version>0.0.1-SNAPSHOT</version>
      <name>gwt-maven-archetype-project</name>
    
      <properties>
    
          <!-- convenience to define GWT version in one place -->
          <gwt.version>2.0.0</gwt.version>
    
          <!--  tell the compiler we can use 1.5 -->
          <maven.compiler.source>1.5</maven.compiler.source>
          <maven.compiler.target>1.5</maven.compiler.target>
    
      </properties>
    
      <dependencies>
    
        <!--  GWT dependencies (from central repo) -->
        <dependency>
          <groupId>com.google.gwt</groupId>
          <artifactId>gwt-servlet</artifactId>
          <version>${gwt.version}</version>
          <scope>runtime</scope>
        </dependency>
        <dependency>
          <groupId>com.google.gwt</groupId>
          <artifactId>gwt-user</artifactId>
          <version>${gwt.version}</version>
          <scope>provided</scope>
        </dependency>
    
        <!-- test -->
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.4</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
    
      <build>
        <outputDirectory>war/WEB-INF/classes</outputDirectory>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>gwt-maven-plugin</artifactId>
            <version>1.2</version>
            <executions>
              <execution>
                <goals>
                  <goal>compile</goal>
                  <goal>generateAsync</goal>
                  <goal>test</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <runTarget>com.mycompany.demo.gwt.Application/Application.html</runTarget>
            </configuration>
          </plugin>
          <!--
              If you want to use the target/web.xml file mergewebxml produces,
              tell the war plugin to use it.
              Also, exclude what you want from the final artifact here.
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <configuration>
                        <webXml>target/web.xml</webXml>
                        <warSourceExcludes>.gwt-tmp/**</warSourceExcludes>
                    </configuration>
                </plugin>
                -->
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.0.2</version>
            <configuration>
              <warSourceDirectory>war</warSourceDirectory>
              <webXml>src/main/webapp/WEB-INF/web.xml</webXml>
            </configuration>
          </plugin>    
        </plugins>
      </build>
    
    </project>
    
    
    4.0.0
    com.mycompany.demo
    我的gwtapp
    战争
    0.0.1-快照
    gwt maven原型项目
    2.0.0
    1.5
    1.5
    com.google.gwt
    gwt servlet
    ${gwt.version}
    运行时
    com.google.gwt
    gwt用户
    ${gwt.version}
    假如
    朱尼特
    朱尼特
    4.4
    测试
    war/WEB-INF/classes
    org.codehaus.mojo
    GWTMaven插件
    1.2
    编译
    生成同步
    测试
    com.mycompany.demo.gwt.Application/Application.html
    org.apache.maven.plugins
    maven战争插件
    2.0.2
    战争
    src/main/webapp/WEB-INF/WEB.xml
    
    运行
    gwt:eclipse
    目标(使用M2EclipseMaven2>build…)来设置环境并为gwt模块创建启动配置


    运行
    gwt:compile gwt:Run
    以gwt托管模式编译并运行gwt模块。

    以防万一。如果您在项目中使用Google GIN,您应该在gwt:compile之前添加compile目标。因此,整个顺序是:

    compile gwt:compile gwt:run
    
    您可以在此处阅读说明:

    您可以运行以下命令来生成Maven GWT项目:

    webAppCreator-maven-noant-out

    有关更多信息:


    GWT和m2eclipse的一个恼人问题:

    GWT开发模式需要所有JAR 放置在WEB-INF/lib中。它是 尤其是当程序员 使用m2eclipse,它提供自己的 Eclipse类路径容器

    好消息,这个变通方法对我很有用

    @帕斯卡:谢谢(我没有足够的声誉去评论其他的帖子,所以我在这里发布对我有用的东西)

    我需要2.5.1 GWT(不是2.6,最新版本)与maven和eclipse一起工作(因为2.6还不支持sencha GXT)

    1) 在eclipse中尝试了几个原型来生成项目

    2) 修改pom文件(基于上述讨论),将版本更改为2.5.1

    下面的内容对我有用


    谢谢你的回复。正如在你的帖子中所做的,但也做了指定GWTSDK的附加步骤(右键单击project->google->WebToolkit设置)。它看起来是可以编译的,但是当运行项目(在eclipse中)时,我在“开发模式”选项卡中没有打开应用程序的任何链接。。。你知道为什么会这样吗?好吧,我(终于)让它起作用了。尽管eclipse开发模式显示到应用程序的链接似乎仍然存在问题。基本上遵循帕斯卡的答案,但随后遵循上的说明。然后使用“mvn gwt:compile gwt:run”查看页面@Pascal-如果您想附加您的答案以反映您必须(1)在eclipse中指定该项目为gwt项目,(2)按照上面页面中的指示更改pom,以及(3)在编译之前运行“mvn gwt:eclipse”,我将接受答案。感谢您的反馈。我已经相应地更新了我的答案(我已经测试过了,一切正常)。再次感谢!我使用的是gwt maven插件,没有Google Eclipse插件。项目是使用gwt maven插件原型创建的。除了gwt:debug之外,一切都正常。GWT开发模式窗口未打开。我无法使用gwt模块访问页面。我做错了什么?在以下方面找到了解决方案:
     mvn archetype:generate -DarchetypeGroupId=org.codehaus.mojo -DarchetypeArtifactId=gwt-maven-plugin -DarchetypeVersion=2.5.1
     mvn gwt:eclipse
     mvn gwt:run