У меня есть мультимодульная установка с одним из подмодулей, являющимся 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)
Как вы подозревали, проблема в том, что ваш 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>
если вы не полностью понимаете последствия. Я еще не нашел реального использования для этого имущества.
resources
в mojo.codehaus.org/gwt-maven-plugin/user-guide/library.html