GWT + Maven和Eclipse编译了多个模块

时间:2018-09-20 13:19:17

标签: eclipse maven gwt gwt-maven-plugin

我正在使用推荐的GWT Maven PluginGWT Eclipse Plugin。实际上,我正在使用带有appengine-mave-plugin的maven插件来尝试模仿旧的Google Eclipse插件超级开发模式。按照GWT插件文档中的Google App Engine说明和建议的示例项目gwt-basic-rpc-appengine,我创建了这个项目,该结构的结构是当我从Eclipse(使用Eclipse)启动App Engine本地服务器时,我的项目以超级开发模式运行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吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

您需要在每个模块上执行一次执行。

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