代码之家  ›  专栏  ›  技术社区  ›  Spiff

新的GWT Maven插件

  •  0
  • Spiff  · 技术社区  · 7 年前

    当我试图编译时,我得到了下面的错误。 目标是gwt:compile 我确实将modulename设置为变量。 模块名称为 com.example.app.App

    相同的命令行 ~/work/projects/gwt/app$ mvn gwt:compile "-DmoduleName=com.example.app.App"

    执行目标失败 net.ltgt.gwt.maven:gwt maven插件:1.0-rc-6:compile(默认cli)on 项目mysandbox:目标的参数'modulename' net.ltgt.gwt.maven:gwt maven插件:1.0-rc-6:缺少编译或 无效->[帮助1]

    另一方面 mvn package 工作。

    这是我的球:

    <?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/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
    
      <groupId>com.example</groupId>
      <artifactId>app</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <packaging>pom</packaging>
    
      <prerequisites>
        <maven>${mavenVersion}</maven>
      </prerequisites>
    
      <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    
        <mavenVersion>3.0</mavenVersion>
      </properties>
    
      <dependencyManagement>
        <dependencies>
          <dependency>
            <groupId>com.google.gwt</groupId>
            <artifactId>gwt</artifactId>
            <version>2.8.0</version>
            <type>pom</type>
            <scope>import</scope>
          </dependency>
          <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
          </dependency>
        </dependencies>
      </dependencyManagement>
    
      <build>
        <plugins>
          <plugin>
            <groupId>net.ltgt.gwt.maven</groupId>
            <artifactId>gwt-maven-plugin</artifactId>
            <inherited>false</inherited>
            <configuration>
              <launcherDir>${project.build.directory}/gwt/launcherDir</launcherDir>
            </configuration>
          </plugin>
        </plugins>
        <pluginManagement>
          <plugins>
            <plugin>
              <artifactId>maven-compiler-plugin</artifactId>
              <!-- Do not upgrade past 3.1 to avoid triggering https://issues.apache.org/jira/browse/MSOURCES-95 -->
              <version>3.1</version>
              <configuration>
                <source>1.8</source>
                <target>1.8</target>
              </configuration>
            </plugin>
            <plugin>
              <groupId>org.eclipse.jetty</groupId>
              <artifactId>jetty-maven-plugin</artifactId>
              <version>9.3.14.v20161028</version>
              <configuration>
                <skip>true</skip>
              </configuration>
            </plugin>
            <plugin>
              <groupId>net.ltgt.gwt.maven</groupId>
              <artifactId>gwt-maven-plugin</artifactId>
              <version>1.0-rc-6</version>
              <extensions>true</extensions>
              <configuration>
                <sourceLevel>1.8</sourceLevel>
                <failOnError>true</failOnError>
              </configuration>
            </plugin>
            <plugin>
              <artifactId>maven-source-plugin</artifactId>
              <version>3.0.1</version>
              <executions>
                <execution>
                  <id>attach-sources</id>
                  <phase>package</phase>
                  <goals>
                    <goal>jar-no-fork</goal>
                  </goals>
                </execution>
              </executions>
            </plugin>
            <plugin>
              <groupId>org.apache.tomcat.maven</groupId>
              <artifactId>tomcat6-maven-plugin</artifactId>
              <version>2.2</version>
            </plugin>
            <plugin>
              <groupId>org.apache.tomcat.maven</groupId>
              <artifactId>tomcat7-maven-plugin</artifactId>
              <version>2.2</version>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
      <modules>
        <module>app-client</module>
        <module>app-shared</module>
        <module>app-server</module>
      </modules>
    </project>
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Thomas Broyer    7 年前

    所以,您有一个多模块Maven项目。调用 mvn gwt:compile 将尝试在4个模块(根模块和3个子模块)中的每个模块上执行该“目标”。因为你的 moduleName 属性(用于配置 模块名 的属性 gwt:compile 目标)可能只存在于 app-client 子模块, gwt:编译 应用于根模块或 app-shared 子模块。

    如果要构建项目,请运行 mvn package (如果您不想运行测试,请通过 -DskipTests )。

    从技术上讲,你也可以跑步 MVN GWT:编译 但直接在子模块内部。要让它起作用,你首先必须 mvn install 这个 应用程序已共享 子模块;否则Maven将无法解决依赖关系(因为您将不再执行完整的“反应堆构建”)。
    有很多原因(参见 http://blog.lexspoon.org/2012/12/recursive-maven-considered-harmful.html http://blog.ltgt.net/maven-is-broken-by-design/ 作为起点),我强烈反对这种做法( 根项目上进行构建 是一种反模式;大多数时候你想要的实际上是 mvn verify )我也不鼓励使用之前的任何阶段 package 使用多模块构建(归根结底只有使用过 打包 ,可能与 -dskiptests公司 ,和 MVN验证 )