0

我已经创建了 gwt maven 项目。我正在使用 mvp4g 并使用 maven 包含所有必需的 jar,并且 pom.xml 包含以下依赖项:

 <dependency>
            <groupId>com.google.inject</groupId>
            <artifactId>guice</artifactId>
            <version>3.0</version>
        </dependency>
        <dependency>
            <groupId>com.google.inject.extensions</groupId>
            <artifactId>guice-assisted-inject</artifactId>
            <version>2.0</version>
        </dependency>
<dependency>
            <groupId>com.google.gwt.inject</groupId>
            <artifactId>gin</artifactId>
            <version>2.0.0</version>
        </dependency>
<dependency>
            <groupId>com.googlecode.mvp4g</groupId>
            <artifactId>mvp4g</artifactId>
            <version>1.4.0</version>
        </dependency> 

但是我在编译时遇到了这个异常:

java.lang.NoSuchMethodError: com.google.gwt.inject.client.GinModules.properties()[Ljava/lang/String; 在 com.google.gwt.inject.rebind.GinjectorGenerator.getPropertyNamesFromInjectorInterface(GinjectorGenerator.java:185) 在 com.google.gwt.inject.rebind.GinjectorGenerator.getPropertyModuleNames(GinjectorGenerator.java:155)

是否有任何 jar 丢失或版本问题。?

4

1 回答 1

0

为什么要定义 gin 工件的不同版本,因为mvp4g 工件已经具有依赖关系但对不同的版本:

   <dependency>
        <groupId>com.google.gwt.inject</groupId>
        <artifactId>gin</artifactId>
        <version>1.5.0</version>
    </dependency>

我建议只删除对 gin artifact 的显式依赖并保留由 mvp4g artifact 定义的版本。此外,gin 工件本身已经依赖于 guice-assistent 工件等。所以只需使用 mvp4g 作为唯一依赖项,让 maven 完成它的工作。如果这可行,您可以将版本更改为例如 google guice。

于 2012-12-26T11:42:36.890 回答