使用GUICE和ANT编译GWT项目

时间:2010-11-23 19:43:19

标签: gwt ant guice gin

我可以成功编译源代码,但是当我点击这个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>

我收到了这些错误:

gwtc:
   [java] Compiling module com.jwavro.jaguar.jaguar
   [java]    Scanning for additional dependencies: generated://9161C2B729E3521B2A51CBE6F2AE8A77/com/unnison/framework/client/GeneratedGinInjector.java
   [java]       Computing all possible rebind results for 'com.unnison.framework.client.GeneratedGinInjector'
   [java]          Rebinding com.unnison.framework.client.GeneratedGinInjector
   [java]             Invoking generator com.google.gwt.inject.rebind.GinjectorGenerator
   [java]                [ERROR] Generator 'com.google.gwt.inject.rebind.GinjectorGenerator' threw an exception while rebinding 'com.unnison.framework.client.GeneratedGinInjector'
   [java] com.google.inject.CreationException: Guice creation errors:
   [java]
   [java] 1) No implementation for javax.inject.Provider was bound.
   [java]   while locating javax.inject.Provider
   [java]     for parameter 9 at com.google.gwt.inject.rebind.BindingsProcessor.(BindingsProcessor.java:209)
   [java]   at com.google.gwt.inject.rebind.GinjectorGeneratorModule.configure(GinjectorGeneratorModule.java:59)

GUICE绑定应该是自动的,任何想法如何修复它?

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

如果你downloaded Guice from Google,分解的zip文件夹中应该有一个带有javax.inject.jar文件的lib文件夹,或者你可以download it direct from trunk

关键是这一行:

[java] 1) No implementation for javax.inject.Provider was bound.

答案 2 :(得分: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快照或... Guice 3.0

因此,请确保路径中有相应的Guice JAR。