如何为gwt编译器提供依赖项目的源代码?

时间:2015-05-05 09:18:45

标签: java maven gwt

目前我正在尝试建立一个GWT项目,而不是一个全新的项目,我只替换了一些依赖项。我引入了新的。

我有一个多项目项目,它使用xtext生成了大量的java文件(dto' s)。作为一个这样的项目的结果,创建了.jar和sources.jar。

我添加的这些罐子作为maven依赖项添加了。

<dependency>
    <groupId>com.xxx.xxx</groupId>
    <artifactId>xxx-gwt</artifactId>
    <version>${xxx.version}</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>com.xxx.xxx</groupId>
    <artifactId>xxx-gwt</artifactId>
    <version>${xxx.version}</version>
    <classifier>sources</classifier>
    <scope>provided</scope>
</dependency>

Eclipse没有显示任何错误。在包浏览器中,可以使用maven依赖项。

如果我尝试使用新的依赖项编译我的gwt项目,我会收到以下错误:

[ERROR] Errors in 'file:/C:/xxx/.../.../.../xxxDetailPresenterImpl.java'
[INFO]          [ERROR] Line 82: No source code is available for type com.xxx.xxx.dto.xxxDetailResultSetDto; did you forget to inherit a required module?

有什么想法吗?客户端部件中使用的所有相关项目必须作为源提供。该项目可作为来源......

我已经了解了在引用的项目中定义模块的可能性,然后在gwt.xml中继承它。但说实话,我不知道如何,因为依赖项目是完全自动生成的。 Eclipse说,它甚至不是Java项目。

1 个答案:

答案 0 :(得分:1)

如果你使用GWT-Mavent插件:

http://mojo.codehaus.org/gwt-maven-plugin/user-guide/project.html#Multi-project_setup

简而言之,这就是你需要做的事情

在您的主项目中,在gwt-maven插件的配置部分内

<configuration>
...
<compileSourcesArtifacts>
    <artifact>com.xxx.xxx:xxx-gwt</artifact>
</compileSourcesArtifacts>
</configuration>

在YOURAPP.gwt.xml内部,不要忘记添加需要编译的类

<inherits name='com.xxx.xxx' />
...

<source path='com/xxx/xxx/client' />

在您想要使用来源的项目中

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>gwt-maven-plugin</artifactId>
    <version>2.6.1</version>
    <executions>
        <execution>
            <goals>
                <goal>source-jar</goal>
            </goals>
        </execution>
    </executions>
</plugin>