Как включить файлы, сгенерированные GWT, в mvn:package

Итак, я пытаюсь преобразовать существующий проект maven в SmartGWT. У меня работает GWT, но у SmartGWT какие-то проблемы с работой с Chrome, а GWT не работает с firefox 8+ (у меня 9). Так что я не очень хорошо разбираюсь в GWT, но я понимаю, что смогу заставить SmartGWT работать, если смогу развернуть скомпилированную версию. Я пытался использовать пакет mvn, но он не включает файлы GWT в JAR.

Как вы упаковываете Jar с файлами GWT с помощью Maven, чтобы его можно было запустить на tomcat?

Обновить:

mvn clean compile gwt:compile package работал на меня


person Jackie    schedule 01.02.2012    source источник
comment
Вы могли бы ответить на это, а затем принять это самостоятельно.   -  person Heiko Rupp    schedule 02.02.2012


Ответы (2)


Вместо того, чтобы всегда вводить команду полной сборки mvn clean compile gwt:compile package, вы также можете привязать цель gwt:compile к фазе prepare-package, чтобы она выполнялась непосредственно перед фазой пакета (и после завершения целей тестирования, среди прочего), чтобы вы могли просто запустите mvn package (или mvn clean package, что было бы ближе к тому, что у вас выше). Добавьте выполнение в определение gwt-maven-plugin, что-то вроде этого

  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>gwt-maven-plugin</artifactId>
    <version>2.4.0</version>
    <executions>
      <execution>
        <phase>prepare-package</phase>
        <goals>
          <goal>compile</goal>
        </goals>
      </execution>
    </executions>
  </plugin>
person Colin Alworth    schedule 02.02.2012

Вы можете сделать две вещи, чтобы помочь. Один из них — установить smartGWT в локальный репозиторий maven, чтобы его исходники и jar были доступны для сборки.

mvn install:install-file -Dfile=path/to/smart-gwt.jar -Dsources=path/to/smart-gwt.jar -Dversion=1.2.3 -DgroupId=group-id-to-use -DartifactId=smart-gwt -DgeneratePom=true -Dpackaging=jar

Замените значения на все, что хотите, если версия и путь к банке верны. Теперь просто включите его, как и любую другую зависимость; используйте придуманные вами идентификатор группы и идентификатор артефакта.

Затем, если вы хотите использовать исходный код smart-gwt вместо jar, вы можете сгенерировать собственный jar-файл, удобный для gwt, со связанными исходными кодами. Настройте exportModule следующим образом

<packaging>jar</packaging>

<!--...-->

<build>
 <sourceDirectory>src/main/java</sourceDirectory>
 <testSourceDirectory>tests/main/java</testSourceDirectory>

<resources>
  <resource>
    <directory>${basedir}/src/main/java</directory>
    <includes>
      <include>**/*.java</include>
      <include>**/*.json</include>
      <include>**/*.png</include>
      <include>**/*.gwt.xml</include>
    </includes>
  </resource>
  <resource>
    <directory>${basedir}/super/main/java</directory>
    <includes>
      <include>**/*.java</include>
      <include>**/*.json</include>
      <include>**/*.png</include>
      <include>**/*.gwt.xml</include>
    </includes>
  </resource>
</resources>

<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-source-plugin</artifactId>
  </plugin>

  <plugin>
    <artifactId>maven-clean-plugin</artifactId>
    <configuration>
      <filesets>
        <fileset><directory>war</directory></fileset>
        <fileset><directory>gwt-unitCache/</directory></fileset>
      </filesets>
    </configuration>
  </plugin>
 </plugins>
</build>

Вы можете установить свой собственный gwt jar с вышеуказанным модулем, который, как предполагается, называется exportModule, с помощью команды

 mvn -f exportModule/pom.xml clean install
person Ajax    schedule 01.05.2012