Nai*_*gun 6 java github heroku maven spring-boot
我正在尝试将我的Java Spring Boot Web应用程序部署到Heroku.
要在本地启动它,我运行:
mvn install
然后
java $JAVA_OPTS -jar target/*.war
因此,对于Heroku,我创建了Procfile:
web: java $JAVA_OPTS -jar target/*.war
我使用Heroku Github集成,应用程序从Github部署到Heroku.所以我把它推到那里.
但该应用程序无法启动.
heroku logs --app myapp 给我:
2015-09-09T21:53:25.581128+00:00 heroku[web.1]: Starting process with command `java $JAVA_OPTS -jar target/*.war`
2015-09-09T21:53:27.110820+00:00 app[web.1]: Error: Unable to access jarfile target/*.war`
Run Code Online (Sandbox Code Playgroud)
heroku run bash --app myapp与ls -a不显示target目录.
我认为Heroku不构建应用程序.但是我做错了什么?在此先感谢您的建议!
而不是mvn install做mvn package给知道其中的差别检查http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html
使用Heroku Maven插件部署WAR文件允许您将部署过程与现有Maven过程集成.Heroku插件使用mvn包阶段生成的工件,并将它们构建为上传到Heroku服务器的Slug文件.
通过这种方式,Heroku Maven插件可以避免远程重新编译项目的开销.从CI服务器部署时,这通常是首选方法,CI服务器可能已经构建了WAR文件并对其进行了测试.
资料来源:https://devcenter.heroku.com/articles/war-deployment#deployment-with-the-heroku-maven-plugin
关于部署Spring Boot,需要采取一些步骤:
配置端口
web: java -Dserver.port=$PORT -jar target/demo-0.0.1-SNAPSHOT.jar
指定JDK,默认值为1.8(如果在Maven中指定了1.8,则无需更改)
查看http://docs.spring.io/spring-boot/docs/current/reference/html/cloud-deployment-heroku.html
要执行Procfile使用 heroku local
我找到了错误的原因。这是构建日志的一部分:
-----> Warning: Multiple default buildpacks reported the ability to handle this app. The first buildpack in the list below will be used.
Detected buildpacks: Node.js, Java
See https://devcenter.heroku.com/articles/buildpacks#buildpack-detect-order
-----> Node.js app detected
-----> Creating runtime environment
Run Code Online (Sandbox Code Playgroud)
根据 Heroku构建顺序,该应用程序被视为 NodeJS 之一。所以解决方案是设置java build pack:
heroku buildpacks:set https://github.com/heroku/heroku-buildpack-java
Run Code Online (Sandbox Code Playgroud)
然后将任何更改推送到应用程序以使其重建。
| 归档时间: |
|
| 查看次数: |
7561 次 |
| 最近记录: |