簡體   English   中英

Gradle與Appengine插件

[英]gradle with appengine plugin

我正在嘗試使用appengine插件設置項目。 我有多個錯誤,可能是因為我不知道如何將所有問題聯系在一起。

例如,當執行gradle appengineRun時,一切正常,直到我在瀏覽器中打開網站為止。 然后我收到:

org.datanucleus.exceptions.NucleusUserException: 
Found Meta-Data for class com.sample.Message but this class is not enhanced!!
Please enhance the class before running DataNucleus.

快速查看任務列表會顯示存在適當的任務: appengineEnhance 不幸的是,當任務運行時,它失敗並ava returned: 1一個神秘異常J ava returned: 1 但是在日志中,我發現了更多的描述性消息:

java.lang.RuntimeException: Unexpected exception
    at com.google.appengine.tools.enhancer.Enhancer.execute(Enhancer.java:76)
    at com.google.appengine.tools.enhancer.Enhance.<init>(Enhance.java:71)
    at com.google.appengine.tools.enhancer.Enhance.main(Enhance.java:51)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at com.google.appengine.tools.enhancer.Enhancer.execute(Enhancer.java:74)
    ... 2 more
Caused by: java.lang.NoSuchMethodError: org.datanucleus.plugin.PluginManager.<init>(Lorg/datanucleus/PersistenceConfiguration;Lorg/datanucleus/ClassLoaderResolver;)V
    at org.datanucleus.OMFContext.<init>(OMFContext.java:159)
    at org.datanucleus.enhancer.DataNucleusEnhancer.<init>(DataNucleusEnhancer.java:172)
    at org.datanucleus.enhancer.DataNucleusEnhancer.<init>(DataNucleusEnhancer.java:150)
    at org.datanucleus.enhancer.DataNucleusEnhancer.main(DataNucleusEnhancer.java:1157)
    ... 7 more

據我了解,罐子之間有些不兼容。 任何想法如何解決?

我的build.gradle文件如下:

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

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

repositories {
    mavenLocal()
    mavenCentral()
}

dependencies {

    providedCompile 'com.google.code.gson:gson:2.2.2'
    providedCompile 'com.google.guava:guava:14.0.1'

    providedCompile 'org.apache.commons:commons-lang3:3.1'
    providedCompile 'commons-io:commons-io:2.4'

    def jacksonVer = '2.2.0'

    providedCompile "com.fasterxml.jackson.core:jackson-core:$jacksonVer"
    providedCompile "com.fasterxml.jackson.core:jackson-databind:$jacksonVer"

    providedCompile 'javax:javaee-api:6.0'
    providedCompile 'com.google.appengine:appengine-api-1.0-sdk:1.8.7'
    providedCompile 'org.reflections:reflections:0.9.9-RC1'
    providedCompile 'org.datanucleus:datanucleus-core:3.1.3'

}

task wrapper(type: Wrapper) {
    gradleVersion = '1.10'
}

appengine {
    httpPort = 6380
}

實際上,經過一段時間后,事實證明這確實是一個愚蠢的錯誤。 最初開發項目的人(從一開始)就沒有使用過任何構建工具,而是直接從Eclipse中進行部署。 在日食中,他准備了戰爭結構,並將所有分類都復制到WEB-INF/classes ,在其中放置了.gitignore文件,以忽略上述目錄的內容。 appengine工作正常!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM