Java 未找到appengine 1.7.4 sdk和com.google.appengine.datanucleus.DatastoreManager

Java 未找到appengine 1.7.4 sdk和com.google.appengine.datanucleus.DatastoreManager,java,google-app-engine,datanucleus,Java,Google App Engine,Datanucleus,我已经升级到appengine 1.7.4,现在有些东西坏了 当部署到本地开发人员时,appengine会出现以下错误 Class "com.google.appengine.datanucleus.DatastoreManager" was not found in the C LASSPATH. Please check your specification and your CLASSPATH. org.datanucleus.exceptions.ClassNotResolvedExce

我已经升级到appengine 1.7.4,现在有些东西坏了

当部署到本地开发人员时,appengine会出现以下错误

Class "com.google.appengine.datanucleus.DatastoreManager" was not found in the C
LASSPATH. Please check your specification and your CLASSPATH.
org.datanucleus.exceptions.ClassNotResolvedException: Class "com.google.appengin
e.datanucleus.DatastoreManager" was not found in the CLASSPATH. Please check you
r specification and your CLASSPATH.
这不是java.lang.ClassNotFoundException,而是org.datanucleus.exceptions.ClassNotResolvedException

我的LIB是

appengine-api-1.0-sdk-1.7.4  
appengine-api-labs-1.7.4  
datanucleus-api-jdo-3.2.0-m3  
datanucleus-api-jpa-3.2.0-m3  
datanucleus-appengine-2.1.1  
datanucleus-core-3.2.0-m3  
datanucleus-enhancer-3.1.1  
它是使用maven构建的

DataNucleus应用程序引擎插件兼容性 州

3.0:
Requires DataNucleus 3.2+ (core, api-jdo, api-jpa).
Requires SDK 1.7.0+
datanucleus-appengine-2.1.1 pom的依赖性为

org.datanucleus datanucleus-api-jdo [3.1.1, 3.2)  
org.datanucleus datanucleus-api-jpa [3.1.1, 3.2)  
org.datanucleus datanucleus-core    [3.1.1, 3.2)  
org.datanucleus datanucleus-enhancer    [3.1.0-release, )  
libs的版本有问题,但我无法确定。
DN插件和sdk 1.7.4的正确依赖关系是什么

-lp

为什么在类路径中有“datanucleus api jdo”和“datanucleus api jpa”?确定您正在使用的API并使用该API。其他依赖项在哪里?persistence-api.jar的jdo-api.jar

除非您使用的是DataNUcleus appengine插件的SVN主干,否则无法使用DataNUcleus 3.2,如

所示,为什么在类路径中有“DataNUcleus api jdo”和“DataNUcleus api jpa”?确定您正在使用的API并使用该API。其他依赖项在哪里?persistence-api.jar的jdo-api.jar


除非您使用DataNUcleus appengine插件的SVN主干,否则无法使用DataNUcleus 3.2,如

OK所示。问题是插件2.1.1依赖于DN 3.2x。 正如@datanucleus所提到的,这是不正确的,应该限制为DN 3.1.1

通过手动将插件的依赖项设置为DN 3.1.1。现在一切都正常了


谢谢@Datanucleus

好的,问题是插件2.1.1依赖于dn3.2x。 正如@datanucleus所提到的,这是不正确的,应该限制为DN 3.1.1

通过手动将插件的依赖项设置为DN 3.1.1。现在一切都正常了


感谢@Datanucleus

兼容性文档声明插件2.1有Datanucleus 3.1+(core、api jdo、api jpa、enhancer),但是插件2.1.1的maven pom有DN[3.1.1、3.2]。那么为什么插件2.1.1使用DN 3.2呢?因为maven是一个合理想法的垃圾实现,它将其分类为“小于3.2”GAE JDO/JPA plugin v2.1.2将DN JAR的版本修改为3.1.3或3.1.4。但是GAE JDO/JPA的发布不在我的控制范围之内,只是它使用的JAR兼容性文档声明插件2.1有DataNucleus 3.1+(核心、api JDO、api JPA、enhancer),但插件2.1.1的maven pom有DN[3.1.1,3.2]。那么为什么插件2.1.1使用DN 3.2呢?因为Maven是一个合理想法的垃圾实现,它将“小于3.2”分类GAE JDO/JPA插件v2.1.2将DN jars的版本修改为3.1.3或3.1.4。但是GAE JDO/JPA的发布不在我的控制范围之内,只是它使用的jars很好,你给了它排序,但通常的做法是接受给出解决方案的答案。@Datanucleus建议的解决方案是to使用插件2.1.2。我的解决方案是使用插件2.1.1。无论哪种方式,我都很乐意为您的答案投票。很好,您对答案进行了排序,但通常的做法是接受给出解决方案的答案。@Datanucleus建议的解决方案是使用插件2.1.2。我的解决方案是使用插件2.1.1。无论哪种方式,我都乐意为您投票回答。