Новый плагин GWT Maven - PullRequest
       8

Новый плагин GWT Maven

0 голосов
/ 01 июля 2018

Я получаю ошибку ниже, когда пытаюсь скомпилировать. Цель 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-plugin: 1.0-rc-6: compile (default-cli) включен Проект mysandbox: параметры 'moduleName' для цели net.ltgt.gwt.maven: gwt-maven-plugin: 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 Ответ

0 голосов
/ 08 июля 2018

Итак, у вас есть многомодульный проект Maven. Вызов mvn gwt:compile попытается выполнить эту «цель» на каждом из 4 модулей (корневой модуль и 3 подмодуля). Поскольку ваше свойство moduleName (используемое для настройки свойства moduleName цели gwt:compile), вероятно, существует только в подмодуле app-client, ошибка gwt:compile при применении к корневому модулю или подмодулю app-shared.

Если вы хотите построить свой проект, запустите mvn package (а если вы не хотите запускать тесты, пройдите -DskipTests).

Технически, вы также можете запустить mvn gwt:compile, но прямо внутри подмодуля. Для того, чтобы это работало, вы сначала должны mvn install подмодуль app-shared; в противном случае Maven не сможет разрешить зависимость (поскольку вы больше не будете выполнять полную «сборку реактора».
По многим причинам (см. http://blog.lexspoon.org/2012/12/recursive-maven-considered-harmful.html и http://blog.ltgt.net/maven-is-broken-by-design/ в качестве отправных точек), я настоятельно не рекомендую эту практику (mvn install - это анти-паттерн; большую часть времени вы на самом деле хотите mvn verify ); и я также не рекомендую использовать любую фазу до package с многомодульными сборками (которая сводится только к mvn package, возможно с -DskipTests и mvn verify)

...