0

我正在使用推荐的GWT Maven PluginGWT Eclipse Plugin。实际上,我正在使用 maven 插件appengine-mave-plugin来尝试模拟旧的 Google Eclipse 插件超级开发模式。按照GWT 插件文档中的Google App Engine说明和建议的示例项目gwt-basic-rpc-appengine 我创建了这个项目,当我从 Eclipse 启动 App Engine 本地服务器时,我的项目在超级开发模式下运行(使用 Eclipse Google Cloud Tools 本地 App Engine 服务器启动器工具)。在 Maven 中,此过程的工作方式如下:mvn clean package appengine:devserver_startmvn gwt:codeserver.

但是,Maven GWT 插件只编译四个模块之一。这是我的pom.xml 配置:

<!-- GWT Maven Plugin-->
      <plugin>
        <groupId>net.ltgt.gwt.maven</groupId>
        <artifactId>gwt-maven-plugin</artifactId>
        <version>1.0-rc-8</version>
        <executions>
          <execution>
            <goals>
              <goal>compile</goal>
             <!--  <goal>test</goal>-->
            </goals>
          </execution>
        </executions>
        <configuration>
          <moduleName>com.company.Administracion</moduleName>
          <moduleName>com.company.Cronometro</moduleName>
          <moduleName>com.company.Extension</moduleName>
          <moduleName>com.company.Company</moduleName>
        <!--   <moduleShortName>Nubbius</moduleShortName> -->
          <failOnError>true</failOnError>
          <!-- GWT compiler 2.8 requires 1.8, hence define sourceLevel here if you use
               a different source language for java compilation -->
          <sourceLevel>1.8</sourceLevel>
          <!-- Compiler configuration -->
          <localWorkers>4</localWorkers>
          <draftCompile>true</draftCompile>
          <compilerArgs>
            <!-- Ask GWT to create the Story of Your Compile (SOYC) (gwt:compile) -->
            <arg>-compileReport</arg>
            <arg>-XcompilerMetrics</arg>
          </compilerArgs>
          <!-- DevMode configuration -->
          <!-- <warDir>${project.build.directory}/${project.build.finalName}</warDir>
-->
          <launcherDir>${project.build.directory}/${project.build.finalName}</launcherDir>
          <classpathScope>compile+runtime</classpathScope>
          <codeServerPort>auto</codeServerPort>
          <!-- URL(s) that should be opened by DevMode (gwt:devmode). -->
          <startupUrls>
            <startupUrl>Company.jsp</startupUrl>
          </startupUrls>
          <jvmArgs>
            <arg>-Xms1024M</arg>
            <arg>-Xmx2014M</arg>
            <!-- <arg>-javaagent:/home/.m2/repository/.../appengine-java-sdk-1.9.59/lib/agent/appengine-agent.jar </arg>-->             <arg>-javaagent:/home/desarrollo26/Descargas/appengine-java-sdk-1.9.59/lib/agent/appengine-agent.jar </arg>
          </jvmArgs>
        </configuration>
      </plugin>

src文件夹包含以下结构:

src/
├── main
│   ├── appengine
│   ├── java
│   │   └── com
│   │       └── company
│   │           ├── client
│   │           ├── server
│   │           └── shared
|   |           
│   ├── resources
│   │   └── META-INF
│   └── webapp
       └── WEB-INF
│           ├── classes
│           │   ├── com
│           │   │   └── company
            │   │       └── shared
│           │   ├── main
│           │   │   ├── java
│           │   │   └── resources
│           │   └── META-INF
│           └── lib
│               └── lib
├── META-INF
└── test
    └── java

(所有modules.gwt.xml文件都在client/ server/shared/文件夹的同一级别。(

在 Eclipse 中,我可以创建一个启动器来使用我在 POM 文件中指定的所有参数来编译我的项目,但我无法自动执行战争爆炸和复制过程(这是从 Maven 构建项目的主要原因) .

我可以用我的项目结构解决这个编译过程吗?我同时使用 GWT Eclipse 项目和 Maven?

谢谢!

4

1 回答 1

0

您需要对每个模块使用一次执行来编译。

话虽如此,您确实应该将您的项目分成(至少)5 个 Maven 子模块(一个用于服务器端代码,一个用于每个 GWT 模块,可能还有其他用于共享代码的模块;您可以使用 gwt-app 和GWT 模块的 gwt-lib 包装以简化您的 POM 文件)

于 2018-09-20T17:44:50.837 回答