我有一个多模块设置,其中一个子模块是GWT,所有其他子模块都是非GWT。这在eclipse中完美运行,我可以启动GWT图和非GWT应用程序。但是,当我执行" mvn clean install"时,我在基于GWT的子模块中出现以下错误。
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 Module <module_name> not found in project sources or resources的类似问题,但没有帮助(因为我不理解它,因为我的pom没有资源)
下面是非GWT代码的pom文件(基本上这个子模块有很少的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 Module ... not found in project sources or resources,我在基于gwt的子模块中添加了以下行,但没有运气
<configuration>
<module>com.harmonia.cbm.basecommon.Basecommon</module>
<inplace>true</inplace>
<force>true</force>
</configuration>
最后,我打开了Basecommon.jar文件(包含所有DTO的非gwt子模块),它没有任何gwt.xml文件(它只有.class文件)。 任何提示都表示赞赏(我对GWT很新,而且几个月前对maven)
答案 0 :(得分:3)
如您所料,问题是您的gwt.xml文件不存在于JAR中。正如你可能在另一个问题中读到的那样,那是因为它在src/main/java
中而未被声明为<resource>
。
解决方案:
将{(1。}}
使用<resources>
或gwt:resources
或使用maven-source-plugin
构建一个source-jar,并将其作为依赖项(以及“普通”JAR)添加到您的GWT项目中:
gwt:source-jar
(注意:<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>
更正确)
另见http://mojo.codehaus.org/gwt-maven-plugin/user-guide/library.html(显然不完整)
<type>
。我还没有找到该物业的真正用途。