我有一个包含多个 gwt 模块的项目,其中一个是库模块,没有其他模块继承的入口点。所有模块都包含在使用 maven 和 gwt-maven-plugin 构建的单个项目中。不幸的是,构建项目失败了,因为 gwt:compile 在编译继承它的主模块时正在类路径上寻找继承的模块。如何在类路径中获取库模块以编译主模块?
最佳答案
您将需要做一些创造性的“Maven-ing”,因为我刚刚编造了一个术语来描述它。 (实际上它可能根本没有创意,但我自己有点 Maven 新手,所以它也难倒了我一段时间)。
从某种意义上说,您是对的,当 GWT 编译器尝试编译您的“主”模块时, 正在类路径中寻找继承模块的 源代码。为此,您需要在主模块的 pom 中添加对库模块源的依赖项(仅限于编译阶段)。
类似这样的:
...
<artifactId>main-module</artifactId>
...
<dependency>
<groupId>library-group</groupId>
<artifactId>library-artifact</artifactId>
<type>jar</type>
<version>0.1-SNAPSHOT</version>
<classifier>sources</classifier>
<scope>compile</scope>
</dependency>
...
现在,您从哪里获得这些来源可能会有所不同。如果您只是想从 IDE(如 Eclipse)中执行此操作,这可能就足够了,因为 m2eclipse 插件足够聪明,可以知道从哪里获取这些源(如果库模块也在您的工作区中)。如果这是您的实际构建过程,那么您将需要修改 library-module 的 pom 以生成 -sources Artifact 以及标准的“library-artifact”。所以你最终会得到两者:
library-artifact-0.1-SNAPSHOT.jar
和
library-artifact-0.1-SNAPSHOT-sources.jar
希望 gwt-maven-plugin 从那时起如何进行更清楚。
差点忘了,我在这里回答的另一个问题也可能有用:GWT Project Structure .
关于GWT 在编译器的类路径上获取继承的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6073753/