GWT 没有可用于类型 [userClassName] 的源代码
Posted
技术标签:
【中文标题】GWT 没有可用于类型 [userClassName] 的源代码【英文标题】:GWT No source code is available for type [userClassName] 【发布时间】:2013-05-28 14:07:38 【问题描述】:好的,这个错误从今天早上开始出现。我有一个名为“snmp-jobs”的Maven
项目,该项目以前仅用于传送 SNMP 通信。由于最近所做的更改,这个项目现在也包含DTO
类。此外,现在有两个主要的子包:shared
和server
,其中第一个包含这些 DTO 和第二个服务器端代码。该项目还有.gwt.xml
文件,其中指定:
<source path="shared"/>
另一个名为“mib”的项目引用“snmp-jobs”并在客户端代码中使用这些 DTO 类。更准确地说,有问题的类称为 MibRow。
当我编译 GWT 项目时它报告错误:
类型“rs.jp.jobs.shared.MibRow”没有可用的源代码;你忘了继承一个必需的模块吗?
我了解这是非常常见的错误。据我了解,GWT 找不到 MibRow
类的源代码,也无法继续进行 GWT 编译。这是真的?
我已经尝试了所有的按部就班的建议,但到目前为止都没有解决问题。任何人都可以给我提示下一步该尝试什么?
非常感谢!
更新:
我已经使用-Dgwt.logLevel=DEBUG
从控制台运行编译,并且有两行突出:
Loading inherited module 'rs.jp.jobs.Jobs'
[INFO] Module location: USER_DIR/.m2/repository/rs/jp/jobs/snmp-jobs/1.0.4-SNAPSHOT/snmp-jobs-1.0.4-SNAPSHOT.jar!/rs/jp/jobs/Jobs.gwt.xml
和
Errors in 'rs/jp/mib/client/commands/mib/report/DataResponse.java'
[INFO] Line 10: No source code is available for type rs.jp.jobs.shared.MibRow; did you forget to inherit a required module?
显然,GWT
设法找到了 Jobs
模块,但不知道 shared
包:-/
【问题讨论】:
gwt.xml 文件相对于“共享”文件夹的位置是否正确?除了常规依赖之外,您还有classifier
。我的一个朋友还建议我没有在我的pom.xml
中启用gwt-maven-plugin
,所以这是我需要尝试的两个选项。谢谢,我会这样做,如果结果很好,我会告诉你:)
@wytten 我今天早上使用gwt-maven-plugin
成功解决了这个问题。不过,谢谢你的建议;)
【参考方案1】:
好的,我已经设法解决了这个问题。我在snmp-jobs
项目中缺少来自pom.xml
的以下XML
块:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
希望这对某人有帮助:)
【讨论】:
以上是关于GWT 没有可用于类型 [userClassName] 的源代码的主要内容,如果未能解决你的问题,请参考以下文章
没有可用于 java.security.InvalidParameterException 类型的源代码