我有一个maven多模块项目。其中一个模块(编译为.jar
)仅包含域对象,将在客户端和服务器端使用(我将此.jar
添加为其他模块的依赖项)。
我知道GWT模块,其中将使用来自共享.jar
的对象,还必须具有用于成功编译的源文件。所以我尝试添加到我的pom.xml
:
<resources>
<resource>
<directory>src/main/java/<path></directory>
<includes>
<include>**/*.java</include>
<include>**/*.gwt.xml</include>
</includes>
</resource>
</resources>
和
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<versionRange>[${gwt.version}]</versionRange>
<goals>
<goal>resources</goal>
</goals>
<plugin>
但结果.jar
不包含GWT模块源(即gwt.xml
)。还添加了所有域类的源(在.jar
的根目录下),但ModuleName.gwt.xml
没有。
哪里有问题?感谢。
答案 0 :(得分:2)
如果您的.gwt.xml
文件位于src/main/resources/
,那么如果您指定src/main/java/
作为资源路径,则不会复制该文件...
您应该省略<resource>
部分,让GWT插件包含jar中的源或至少包含两个部分,一部分用于.gwt.xml
文件(src/main/resources
或您在哪里把它和一个用于源代码(就像你现在拥有的那样)。
干杯,
答案 1 :(得分:0)
我今天正在排除此错误,因此我只是发布了我的修复程序:
使用maven gwt插件构建的多模块gwt项目需要在pom.xml中输入一个条目,如:
<modules>
<module>../theothermodule</module>
</modules>
为了编译。
答案 2 :(得分:0)
此错误有多种解释。检查清单:
*.gwt.xml
文件。例如。 com.example.ThirdParty
是指com/example/ThirdParty.gwt.xml
模块<inherits name="com.example.ThirdParty" />
添加到您的*.gwt.xml
文件ThirdParty.gwt.xml
应包含一个或多个指向可翻译代码的source
元素。例如。 <source path='shared' />
。ThirdParty.jar
中的所有可翻译代码都需要包含明文*.java
来源。例如。 com/example/shared/Widget.class
和com/example/shared/Widget.java
都在场ThirdParty.jar
在您的类路径注意:
ThirdParty
gwt模块没有入口点,则不需要使用gwt编译器进行编译ThirdParty
模块,只要它的jar在classpath上并且*.gwt.xml
继承ThirdParty.gwt.xml
;这同样适用于gwt maven插件