When generating a GAE app from Roo, the generated POM references Datanucleus 1.1.6 and App Engine 1.3.4. However, since App Engine 1.3.4 bundles Datanucleus 1.1.5, this causes issues when GPE tries to run App Engine's Datanucleus Enhancer. The enhancer whines about having multiple versions of Datanucleus on the enhancer classpath - version 1.1.6, contributed to the build classpath by Maven, and version 1.1.5, contributed to the enhancement classpath by App Engine.
To fix this, we need to choose a version of Datanucleus that is identical to the version that is bundled with the specified version of App Engine. That way, the enhancer will run properly in the IDE. However, there is the additional complication that the version ALSO has to be compatible with the maven-datanucleus-plugin, which is used from the command-line build. This maven plugin specifies a range of compatible datanucleus versions - we've got to make sure that whatever version of datanucleus that we choose, it also fits in this version range.
As a side note, the larger problem that needs to be solved is the fact that the ORM libraries have two different sources of truth - org.datanucleus, and the version that App Engine uses. Really, we need to think about how to decouple App Engine from ORM (if even possible) for the Maven case.