저는 Ubuntu에서 android studio를 사용하고 있으며 Google App Engine Backend를 설정하려고했습니다. 다음은 pom.xml 파일입니다. 모든 종속성 및 플러그인의 최신 버전을 사용하려고했습니다.android studio에서 appengine 백엔드를 컴파일 할 때 Datanuclues 오류가 발생했습니다.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<groupId>com.watch.project</groupId>
<artifactId>watch-AppEngine</artifactId>
<properties>
<appengine.target.version>1.8.9</appengine.target.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- Compile/runtime dependencies -->
<dependency>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-api-1.0-sdk</artifactId>
<version>${appengine.target.version}</version>
</dependency>
<dependency>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-endpoints</artifactId>
<version>${appengine.target.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>3.0-alpha-1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jpa_2.0_spec</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>net.sf.jsr107cache</groupId>
<artifactId>jsr107cache</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-core</artifactId>
<version>3.2.11</version>
</dependency>
<dependency>
<groupId>com.google.appengine.orm</groupId>
<artifactId>datanucleus-appengine</artifactId>
<version>2.1.2</version>
</dependency>
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-api-jpa</artifactId>
<version>3.3.6</version>
</dependency>
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1.1</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.ganyo</groupId>
<artifactId>gcm-server</artifactId>
<version>1.0.2</version>
</dependency>
<!-- Test Dependencies -->
<dependency>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-testing</artifactId>
<version>${appengine.target.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-api-stubs</artifactId>
<version>${appengine.target.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<!-- for hot reload of the web application-->
<outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/classes
</outputDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<version>3.1</version>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<webXml>
${project.build.directory}/generated-sources/appengine-endpoints/WEB-INF/web.xml
</webXml>
<webResources>
<resource>
<!-- this is relative to the pom.xml directory -->
<directory>
${project.build.directory}/generated-sources/appengine-endpoints
</directory>
<!-- the list has a default value of ** -->
<includes>
<include>WEB-INF/*.discovery</include>
<include>WEB-INF/*.api</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
<plugin>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>1.8.9</version>
<configuration>
<enableJarClasses>false</enableJarClasses>
</configuration>
<executions>
<execution>
<goals>
<goal>endpoints_get_discovery_doc</goal>
<!--goal>endpoints_get_client_lib</goal-->
<goal>enhance</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
자바 버전 : 덱스터 @ 덱스터 - 레노버 G505s : ~ $ 자바 -version 자바 버전 "1.8.0-개" 자바 (TM) SE 런타임 환경 (빌드 1.8.0-EA- 2013년 9월 17일 20; 아파치 메이븐 3.1.1 (0728685237757ffbf44136acec0402957f723d9a : 52 : 22 + 0530 B108) 자바 핫스팟 (TM) 64 비트 서버 VM (25.0-B50, 혼합 모드)
메이븐 버전 빌드) Maven home : /home/dexter/Desktop/apache-maven-3.1.1 Java 버전 : 1.8.0-ea, 공급 업체 : Oracle Corporation Java 홈 : /usr/local/java/jdk1.8.0/jre 기본 로켈 : en_IN, 플랫폼 인코딩 : UTF-8 OS 이름 : "linux", 버전 : "3.8.13-992-generic", arch : "AMD64"가족 : "유닉스"
나는 MVN 컴파일을 수행하려고, 나는 다음과 같은 오류 얻을 :
오류 (들)의 전체 스택 추적에 대한 링크는 다음과 같습니다 http://pastebin.com/bAeMZyeb[ERROR]를 ------------- ------- [오류] DataNucleus 도구 + org.datanucleus.enhancer.DataNucleusEnhancer의 표준 오류 : [오류] -------------------- [오류] 스레드 "주"의 예외 java.lang.IllegalArgumentException at org.datanucleus.asm.ClassReader. (ClassRea der.java:185) at org.datanucleus.asm.ClassReader. (ClassReader.java:168) at org.datanucleus.asm.ClassReader. (ClassReader.java:439) at org.datanucleus.enhancer.jdo. JDOClassEnhancer.getClassNameForFileName (JDOClassEnhancer.java:172) org.datanucleus.enhancer.DataNucleusEnhancer.getFileMetadataForInput (DataNucleusEnhancer.java:730)에서 org.datanucleus.enhancer.DataNucleusEnhancer.enhance (DataNucleusEnhancer.java:513)에서 조직에서 . datanucleus.enhancer.DataNucleusEnhancer.main (DataNucleusEnhancer.java:1281) 여기
이 문제를 해결할 수 있도록 도와주세요. 양해 해 주셔서 감사합니다.
그래서 예외를 던지는 코드에 대한 코드를 읽으시겠습니까? https://github.com/datanucleus/datanucleus-core/blob/master/src/java/org/datanucleus/asm/ClassReader.java#L185 JDK 1.8 이상을 사용하고 있고 사용중인 ASM 버전 만 사용하고있는 것으로 보입니다. 1.7 이하. ASM v5가 아직 공개되지 않았습니다. – DataNucleus
[정보] BUILD 성공 추후에 코드를 먼저 확인하는 것이 좋습니다. – Dexter