0

저는 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 컴파일을 수행하려고, 나는 다음과 같은 오류 얻을 :

[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) 여기

오류 (들)의 전체 스택 추적에 대한 링크는 다음과 같습니다 http://pastebin.com/bAeMZyeb

이 문제를 해결할 수 있도록 도와주세요. 양해 해 주셔서 감사합니다.

+2

그래서 예외를 던지는 코드에 대한 코드를 읽으시겠습니까? 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

+0

[정보] BUILD 성공 추후에 코드를 먼저 확인하는 것이 좋습니다. – Dexter

답변

-1

이것은 자체적으로 해결되었습니다.

빌드가 너무 늦고 소스 위치에서 일부 변경 사항이 발생하는 경우 이러한 종류의 문제가 발생합니다. 10 분이 지나도 다시 시도하면이 문제가 해결되어 appengine.target.version의 최신 빌드가 성공적으로 완료되었습니다.

관련 문제