[英]heroku fails to pick gradle-wrapper and correct java version
I have added system.properties
with java.runtime.version=1.7
and created an application in heroku to run a spring mvc war file using jetty 我使用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 shows files added to index git显示添加到索引的文件
anadi$ git ls-files gradle/
gradle/wrapper/gradle-wrapper.jar
gradle/wrapper/gradle-wrapper.properties
however deployment fails 但是部署失败
here's the error log from heroku 这是来自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'
I fixed same problem by pushing gradle wrapper files to heroku master. 我通过将gradle包装器文件推送到heroku master解决了相同的问题。
Inside your gradle project run wrapper: gradle wrapper
, which creates gradle/
directory and gradlew
file. 在gradle项目中运行wrapper: gradle wrapper
,它创建gradle/
目录和gradlew
文件。 Commit and push those together with your code and then it should start working. 提交并与您的代码一起推送,然后它应该开始工作。
If wrapper
task is not found add the following to the build.gradle
如果找不到wrapper
任务,则将以下内容添加到build.gradle
task wrapper(type: Wrapper) {
gradleVersion = '1.6'
}
On git push heroku master
you should see Downloading https://services.gradle.org/distributions/gradle-1.6-bin.zip
in the console log, like this: 在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.