2

我可以成功编译源代码,但是当我遇到这个 ant 任务时:

  <target name="gwtc" depends="javac" description="GWT compile to JavaScript">
    <java failonerror="true" fork="true" classname="com.google.gwt.dev.Compiler">
      <classpath>
        <pathelement location="src"/>
        <path refid="project.class.path"/>
      </classpath>
      <jvmarg value="-Xmx256M"/>
      <arg line="${gwt.args}"/>
      <arg value="com.jwavro.jaguar.jaguar"/>
    </java>
  </target>

我收到这些错误:

世界贸易中心:
   [java] 编译模块 com.jwavro.jaguar.jaguar
   [java] 扫描附加依赖:generated://9161C2B729E3521B2A51CBE6F2AE8A77/com/unnison/framework/client/GeneratedGinInjector.java
   [java] 为 'com.unnison.framework.client.GeneratedGinInjector' 计算所有可能的重新绑定结果
   [java] 重新绑定 com.unnison.framework.client.GeneratedGinInjector
   [java] 调用生成器 com.google.gwt.inject.rebind.GinjectorGenerator
   [java] [错误] 生成器 'com.google.gwt.inject.rebind.GinjectorGenerator' 在重新绑定 'com.unnison.framework.client.GeneratedGinInjector' 时引发异常
   [java] com.google.inject.CreationException:Guice 创建错误:
   [爪哇]
   [java] 1) 没有绑定 javax.inject.Provider 的实现。
   [java] 定位 javax.inject.Provider 时
   [java] com.google.gwt.inject.rebind.BindingsProcessor.(BindingsProcessor.java:209) 中的参数 9
   [java] 在 com.google.gwt.inject.rebind.GinjectorGeneratorModule.configure(GinjectorGeneratorModule.java:59)

GUICE 绑定应该是自动的,知道如何修复它吗?

4

3 回答 3

1

Guice 不能直接与 GWT 一起使用。您需要使用GIN

于 2011-03-16T15:19:20.860 回答
0

我能想到两件事。首先确保您在 GWT 模块 xml 中正确继承了 GIN 模块:

<module>
  ...
  <inherits name="com.google.gwt.inject.Inject"/>
  ...
</module>

其次,您必须小心 GIN 和 Guice 的版本。在 GIN 主页上它说:

GIN 1.0需要……和Guice 2.0

对于Gin 1.5,您需要使用与 Gin 或 ... Guice 3.0一起分发的Guice 快照

因此,请确保您在路径中有适当的 Guice JAR。

于 2012-02-20T11:09:25.090 回答
0

javax.inject是需要在您的类路径中的依赖项。

如果您从 Google 下载 Guice,则在分解后的 zip 中应该有一个带有 javax.inject.jar 文件的 lib 文件夹,或者您可以直接从 trunk 下载它

关键是这一行:

[java] 1) No implementation for javax.inject.Provider was bound.
于 2011-03-16T15:15:45.973 回答