【问题标题】:Compile GWT project without source code available在没有可用源代码的情况下编译 GWT 项目
【发布时间】:2012-10-20 08:21:43
【问题描述】:

是否可以使用我没有可用源代码的继承模块来编译 GWT 项目? 我的类路径中有包含继承模块类的 JAR 文件。

【问题讨论】:

  • 我只有编译好的类,没有源代码。编译项目时出现错误:“没有可用于类型...的源代码;您是否忘记继承所需的模块?”

标签: java gwt


【解决方案1】:

不,GWT 仅适用于 Java 源代码,不适用于类。

【讨论】:

  • 虽然它还需要类也可用 - 编译器的早期阶段之一使用已编译的字节码来获取有关源路径上的类、字段和方法的信息。
  • 如果需要,GWT 编译器不会自己构建它们吗?如果从 GWT build.xml 中删除 javac 任务,项目仍然可以正常构建。我认为 javac 只是作为一种预警健全性检查存在,如果您的代码无法编译,它会很快失败。
  • 在我的快速测试中,不,不是用于实际编译,但它可能适用于开发模式。
  • DevMode 将即时编译所有类。 SuperDevMode 不需要类路径上的类,(除非您使用引用其他类的注释,这是一个最终会消失的已知错误)。我可以证明编译过程不会运行普通的 javac;相反,它使用 eclipse JDT 将源代码转换为伪类。它只依赖于类来提供给定类的运行时信息,尽管代码中的 cmets 建议将其删除以完全从源代码运行。
【解决方案2】:

如果您引用的库是流行/开源库,那么您可以使用 codehaus 的 gwt-maven-plugin 在编译时为您自动下载和提供源 jar。

http://mojo.codehaus.org/gwt-maven-plugin/compile-mojo.html

你要找的参数是compileSourcesArtifacts。

如果您可以扩展您尝试使用的确切库(无论它们是专有的还是开源的),我可以为您提供更好的反馈,告诉您如何使用 gwt-maven-plugin 绕过需要有源类路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多