Как включить сгенерированные GWT файлы в пакет mvn: - PullRequest
2 голосов
/ 02 февраля 2012

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

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

обновление:

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

Ответы [ 2 ]

2 голосов
/ 02 февраля 2012

Вместо того, чтобы всегда вводить команду полной сборки 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>
0 голосов
/ 01 мая 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

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

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

<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
...