не удалось выполнить цель gwt-maven-plugin: 2.5.1: имя модуля gwt не найдено в источниках или ресурсах проекта (работает в eclipse, но установка maven не удалась)

1

У меня есть мультимодульная установка с одним из подмодулей, являющимся GWT, и все другие подмодули не являются GWT. Это отлично работает в eclipse, где я могу запускать графики GWT и приложения, отличные от GWT. Однако я получаю следующую ошибку в моем подмодуле на основе GWT, когда я делаю "mvn clean install",

  failed to execute goal org.codehause.mojo:gwt-maven-plugin:2.5.1: gwt module   com.mycompany.projectid.basecommon.Basecommon not found in project sources or resources

Я рассмотрел GWT. Maven. Модуль GWT <имя_файла> не найден в источниках или ресурсах проекта для аналогичного вопроса, но не помог (потому что я не понимаю его, поскольку у моего пом у него нет ресурсов)

Ниже представлен pom файл для кода, отличного от GWT (в основном этот подмодуль имеет несколько DTO, которые будут использоваться клиентской стороной GWT и всех других модулей, отличных от GWT)

  <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>
<parent>
    <groupId>com.harmonia</groupId>
    <artifactId>cbm</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>base-common</artifactId>
<name>BASE-COMMONS</name>
<description>BASE-COMMONS</description>
<packaging>jar</packaging>
 </project>

Файл Basecommon gwt.xml приведен ниже, и он находится в файле src/main/java/com/mycompany/projectid/basecommon/Basecommon.gwt.xml

  <module>
 <inherits name='com.google.gwt.user.User'/>
   <source path='dto' />

Основанный на модуле GWT... не найден в источниках или ресурсах проекта, я добавил следующие строки в мой подмодуль, основанный на gwt, но не повезло

  <configuration>
        <module>com.harmonia.cbm.basecommon.Basecommon</module>
<inplace>true</inplace>
<force>true</force>
</configuration>

Наконец, я открыл файл Basecommon.jar (субмодуль не-gwt со всеми DTO), и у него нет файла gwt.xml (все, что у него есть.class файлы). Любые намеки оценили (я очень новичок в GWT и несколько месяцев назад, чтобы maven)

Теги:
maven
gwt

1 ответ

3
Лучший ответ

Как вы подозревали, проблема в том, что ваш gwt.xml файл отсутствует в JAR. И, как вы могли бы прочитать в другом вопросе, это потому, что это в src/main/java и не объявлено как <resource>.

Решения:

  • либо объявлять ресурсы (файлы *.java и *.gwt.xml, возможно, другие, если вы используете ClientBundle или UiBinder) в качестве <resources>

  • использовать gwt:resources или gwt:source-jar

  • или создать исходную банку с maven-source-plugin и добавить его как зависимость (вместе с "нормальным" JAR) к вашему проекту GWT:

    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>base-common</artifactId>
      <version>${project.version}</version>
      <type>java-source</type>
    </dependency>
    

(примечание: <classifier>sources</classifier> также работают вместо <type>java-source</type>, но с использованием <type> более корректно)

См. Также http://mojo.codehaus.org/gwt-maven-plugin/user-guide/library.html (что явно не завершено)


BTW, не используйте <inplace>true</inplace> если вы не полностью понимаете последствия. Я еще не нашел реального использования для этого имущества.

  • 0
    @Broyer: спасибо за подробный ответ. это помогло. Могу ли я попросить вас дать ссылку (pom.xml) о том, как использовать gwt: resources или gwt: source-jar. Я нашел этот mojo.codehaus.org/gwt-maven-plugin/resources-mojo.html , но у него нет примера того, как использовать его в pom.xml (может быть, это слишком простой / очевидный)
  • 0
    Вот пример для resources в mojo.codehaus.org/gwt-maven-plugin/user-guide/library.html

Ещё вопросы

Сообщество Overcoder
Наверх
Меню