java.lang.NoSuchMethodError: com.google.gwt.inject.client.GinModules.properties()[Ljava/lang/String;
Я создал проект gwt maven. В нем я использую mvp4g и включил все необходимые jar-файлы с использованием maven, а 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).
отсутствует ли какая-либо банка или проблема с версией.?
1 ответ
Почему вы определяете другую версию артефакта джина, потому что артефакт mvp4g уже имеет зависимость, но с другой версией:
<dependency>
<groupId>com.google.gwt.inject</groupId>
<artifactId>gin</artifactId>
<version>1.5.0</version>
</dependency>
Я бы предложил просто удалить явную зависимость от артефакта джина и оставить версию, которая определяется артефактом mvp4g. Более того, сам артефакт джина уже имеет зависимости от артефакта, помогающего обмануть и т. Д. Так что просто используйте mvp4g в качестве единственной зависимости и позвольте maven выполнять свою работу. Если это работает, вы можете изменить версию, например, на Google Guice.