运行 Grails 应用无法使用 mongodb 插件版本 3.0.3
Can't run Grails app with mongodb plugin version 3.0.3
我正在尝试将我的 mongodb 插件从 2.0.1 升级到 3.0.3。但是我不断收到以下错误:
java.lang.NoClassDefFoundError: com/mongodb/AggregationOptions
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2531)
at java.lang.Class.getDeclaredMethods(Class.java:1855)
at org.codehaus.groovy.reflection.CachedClass.run(CachedClass.java:84)
at java.security.AccessController.doPrivileged(Native Method)
at org.codehaus.groovy.reflection.CachedClass.initValue(CachedClass.java:81)
at org.codehaus.groovy.reflection.CachedClass.initValue(CachedClass.java:79)
at org.codehaus.groovy.util.LazyReference.getLocked(LazyReference.java:46)
at org.codehaus.groovy.util.LazyReference.get(LazyReference.java:33)
at org.codehaus.groovy.reflection.CachedClass.getMethods(CachedClass.java:250)
at groovy.lang.MetaClassImpl.populateMethods(MetaClassImpl.java:343)
at groovy.lang.MetaClassImpl.fillMethodIndex(MetaClassImpl.java:293)
at groovy.lang.MetaClassImpl.initialize(MetaClassImpl.java:3048)
at groovy.lang.ExpandoMetaClass.initialize(ExpandoMetaClass.java:483)
at org.codehaus.groovy.reflection.ClassInfo.getMetaClassUnderLock(Cl
...
我已经尝试将插件版本更改为 3.0.2,但错误仍然存在。
更新:
我在使用 Grails 2.3.11
。
我试过在不指定任何依赖项的情况下包含插件,并从我过去的配置中复制粘贴依赖项,即:
dependencies {
runtime "org.mongodb:mongo-java-driver:2.11.4"
compile "org.mongodb:mongo-java-driver:2.11.4"
runtime "com.gmongo:gmongo:1.2"
}
和
plugins {
...
compile(':mongodb:2.0.1') {
excludes 'mongo-java-driver', 'gmongo'
}
将依赖项更改为:
runtime "org.mongodb:mongo-java-driver:2.12.3"
compile "org.mongodb:mongo-java-driver:2.12.3"
有效
稍微更新一下您的 BuildConfig:
compile ":mongodb:3.0.2"
不要指定任何其他 mongo 相关依赖项,并且不要排除 mongo-java-driver
或 gmongo
。此外,如果您使用的是 mongeez 插件,则必须排除 java 驱动程序。
compile (":mongeez:0.2.3") {
excludes("mongo-java-driver")
}
我正在尝试将我的 mongodb 插件从 2.0.1 升级到 3.0.3。但是我不断收到以下错误:
java.lang.NoClassDefFoundError: com/mongodb/AggregationOptions
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2531)
at java.lang.Class.getDeclaredMethods(Class.java:1855)
at org.codehaus.groovy.reflection.CachedClass.run(CachedClass.java:84)
at java.security.AccessController.doPrivileged(Native Method)
at org.codehaus.groovy.reflection.CachedClass.initValue(CachedClass.java:81)
at org.codehaus.groovy.reflection.CachedClass.initValue(CachedClass.java:79)
at org.codehaus.groovy.util.LazyReference.getLocked(LazyReference.java:46)
at org.codehaus.groovy.util.LazyReference.get(LazyReference.java:33)
at org.codehaus.groovy.reflection.CachedClass.getMethods(CachedClass.java:250)
at groovy.lang.MetaClassImpl.populateMethods(MetaClassImpl.java:343)
at groovy.lang.MetaClassImpl.fillMethodIndex(MetaClassImpl.java:293)
at groovy.lang.MetaClassImpl.initialize(MetaClassImpl.java:3048)
at groovy.lang.ExpandoMetaClass.initialize(ExpandoMetaClass.java:483)
at org.codehaus.groovy.reflection.ClassInfo.getMetaClassUnderLock(Cl
...
我已经尝试将插件版本更改为 3.0.2,但错误仍然存在。
更新:
我在使用 Grails 2.3.11
。
我试过在不指定任何依赖项的情况下包含插件,并从我过去的配置中复制粘贴依赖项,即:
dependencies {
runtime "org.mongodb:mongo-java-driver:2.11.4"
compile "org.mongodb:mongo-java-driver:2.11.4"
runtime "com.gmongo:gmongo:1.2"
}
和
plugins {
...
compile(':mongodb:2.0.1') {
excludes 'mongo-java-driver', 'gmongo'
}
将依赖项更改为:
runtime "org.mongodb:mongo-java-driver:2.12.3"
compile "org.mongodb:mongo-java-driver:2.12.3"
有效
稍微更新一下您的 BuildConfig:
compile ":mongodb:3.0.2"
不要指定任何其他 mongo 相关依赖项,并且不要排除 mongo-java-driver
或 gmongo
。此外,如果您使用的是 mongeez 插件,则必须排除 java 驱动程序。
compile (":mongeez:0.2.3") {
excludes("mongo-java-driver")
}