Google Apps Engine后端 - 缺少Javax.persistence - Android Studio

时间:2014-04-25 22:09:50

标签: android google-app-engine gradle android-studio android-gradle

我尝试迁移到Android工作室,我的应用引擎代码使用下面列出的实体框架

import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class AppVersion {

@Id
private String applicationName;
private int minVersionRequired;

public String getApplicationName() {
    return applicationName;
}
public int getMinVersionRequired() {
    return minVersionRequired;
}
public void setApplicationName(String applicationName) {
    this.applicationName = applicationName;
}
public void setminVersionRequired(int minVersionRequired) {
    this.minVersionRequired = minVersionRequired;
}
}

在Android Studio(0.5.6)中创建后端并不起作用,我无法导入javax.persistence。*

从这个link我发现我需要创建一个persistence.xml文件(这是在Eclipse中自动创建的)。我只是无法弄清楚它应该在文件结构中的位置。我知道它需要在META-INF文件夹中,但我不知道gradle的对应位置(或者是否必须在gradle构建文件中创建)。 当前文件结构:

-src
  -main
    -java
      -com.package.test
        class files
    -webapp
      -css
      -js
      -WEB-INF

Gradle构建文件:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.google.appengine:gradle-appengine-plugin:1.9.1'
    }
}

repositories {
    mavenCentral();
}

apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'appengine'

sourceCompatibility = 1.7
targetCompatibility = 1.7

dependencies {
  appengineSdk 'com.google.appengine:appengine-java-sdk:1.9.1'
  compile 'com.google.appengine:appengine-endpoints:1.9.1'
  compile 'com.google.appengine:appengine-endpoints-deps:1.9.1'
  compile 'javax.servlet:servlet-api:2.5'
}

appengine {
  downloadSdk = true
  appcfg {
    oauth2 = true
  }
  endpoints {
    getClientLibsOnBuild = true
    getDiscoveryDocsOnBuild = true
  }
}

2 个答案:

答案 0 :(得分:2)

Android Studio的App Engine示例不使用JPA。

但是,如果您想使用JPA,则需要添加JPA依赖项,这将描述您可能会在哪些地方找到它们https://developers.google.com/appengine/docs/java/datastore/jpa/overview-dn2

所以这些(或其中的一些子集)

  • ASM-4.0.jar
  • DataNucleus将-API的JP-A-3.1.3.jar
  • DataNucleus将核 - 3.1.3.jar
  • JDO-API-3.0.1.jar
  • DataNucleus将-API-JDO-3.1.3.jar
  • DataNucleus将-的AppEngine-2.1.2.jar
  • 的geronimo-jpa_2.0_spec-1.0.jar
  • JTA-1.1.jar

在maven.org上查看这些依赖项将揭示如何将它们作为编译依赖项包含在build.gradle文件中:

asm-4.0:

compile 'org.ow2.asm:asm:4.0'

datanucleus-api-jpa-3.1.3:

compile 'org.datanucleus:datanucleus-api-jpa:3.1.3'

等等。

您希望版本与appengine sdk中的版本完全相同,以确保兼容性。还要确保在项目上运行增强任务。

答案 1 :(得分:0)

尝试将以下内容添加到build.gradle

compile group: 'javax.persistence', name: 'persistence-api', version: '1.0'