簡體   English   中英

heroku無法選擇gradle-wrapper和正確的Java版本

[英]heroku fails to pick gradle-wrapper and correct java version

我使用java.runtime.version=1.7添加了system.properties並在heroku中創建了一個應用程序,以使用碼頭運行spring mvc war文件

anadi$ heroku apps:create gogreen
Creating gogreen... done, stack is cedar
http://gogreen.herokuapp.com/ | git@heroku.com:gogreen.git
Git remote heroku added

anadi$ cat system.properties 
java.runtime.version=1.7

anadi$ cat Procfile 
web: java $JAVA_OPTS -jar build/libs/jetty-runner.jar --port $PORT build/libs/*.war

git顯示添加到索引的文件

anadi$ git ls-files gradle/
gradle/wrapper/gradle-wrapper.jar
gradle/wrapper/gradle-wrapper.properties

但是部署失敗

  1. Heroku沒有選擇正確的JDK版本
  2. Heroku找不到Gradle Main類

這是來自heroku的錯誤日志

anadi$ git push heroku master
Initializing repository, done.
Counting objects: 368, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (178/178), done.
Writing objects: 100% (368/368), 192.45 KiB | 52.00 KiB/s, done.
Total 368 (delta 148), reused 353 (delta 140)

-----> Gradle app detected
-----> Installing OpenJDK 1.6... done
-----> Building Gradle app...
       WARNING: The Gradle buildpack is currently in Beta.
-----> executing ./gradlew stage
       Exception in thread "main" java.lang.NoClassDefFoundError: org/gradle/wrapper/GradleWrapperMain
       Caused by: java.lang.ClassNotFoundException: org.gradle.wrapper.GradleWrapperMain
        at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
       Could not find the main class: org.gradle.wrapper.GradleWrapperMain. Program will exit.
 !     Failed to build app

 !     Push rejected, failed to compile Gradle app

To git@heroku.com:gogreen.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:gogreen.git'

我通過將gradle包裝器文件推送到heroku master解決了相同的問題。

在gradle項目中運行wrapper: gradle wrapper ,它創建gradle/目錄和gradlew文件。 提交並與您的代碼一起推送,然后它應該開始工作。

如果找不到wrapper任務,則將以下內容添加到build.gradle

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

git push heroku master您應該在控制台日志中看到“ Downloading https://services.gradle.org/distributions/gradle-1.6-bin.zip ”,如下所示:

-----> Gradle app detected
-----> Installing OpenJDK 1.7... done
-----> Building Gradle app...
       WARNING: The Gradle buildpack is currently in Beta.
-----> executing ./gradlew stage
       Downloading https://services.gradle.org/distributions/gradle-1.6-bin.zip
       ................................................

暫無
暫無

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

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