首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为项目构建

为项目构建
EN

Stack Overflow用户
提问于 2021-05-10 20:15:23
回答 2查看 690关注 0票数 2

我的应用程序在本地运行得非常好,并且是与Heroku一起部署的,但是我很难构建一个Procfile来声明应该执行什么命令来启动应用程序。我是一个新开发人员,可以在Linux进程模型的工作方式方面得到一些帮助。

Heroku文档为Java项目提供了两个Procfile示例:

web: java -Dserver.port=$PORT $JAVA_OPTS -jar build/libs/demo-0.0.1-SNAPSHOT.jar

web: java $JAVA_OPTS -cp target/classes:target/dependency/* com.example.HelloWorld

我决定尝试遵循-cp示例,因为我没有任何.jar文件。

这是我现在的过程文件:

web: java $JAVA_OPTS -cp gradlew java/com/deepdraft/deep_draft/DeepDraftApplication.java 前文件

在最近的一次开发人员采访中,我简短地询问了Procfile的情况,他建议我在编写Procfile时引用我的"gradlew“文件,但是我没有机会询问是从这个文件复制命令还是将Procfile指向文件中的命令。作为猜测,我选择了"gradlew“文件复制到当前Procfile中的主类中。下面是在gradlew文件底部收集的参数。gradlew

我尝试通过引用(com.deepdraft.deep_draft.DeepDraftApplication)和路径(java/com/deepdraft/deep_draft/DeepDraftApplication.java).将主类放入Procfile中。这两个过程文件都会产生一个日志,上面写着“错误:找不到或加载主类”。这是一张完整日志的照片。日志

但老实说,我不知道Procfile为什么需要我编写一个脚本,将文件从一个目录复制到另一个目录。我只是尝试一下,因为Heroku文档使用这个Procfile作为SpringBoot项目的示例。

对不起,如果这个信息是到处都是,但我是一个新的开发人员,谁非常兴奋地部署我的第一个应用程序。如何构建过程文件?

(编辑)好的,实际上我找到了一个jar文件!我在终端中使用".jar“而不是"jar”,并找到了一个gradlewrapper.jar文件。我将尝试使用这个文件来遵循上面的第一个Procfile示例,使用-jar命令。gradlewrapper.jar

(编辑2)哇,我感觉我离得太近了。得到一条新的错误消息是令人兴奋的。哈哈。它说“.jar文件中没有主清单属性”。新原木我发现了关于添加一个清单属性的堆栈溢出会话,但是我无法编辑这个压缩的文件,而且我拥有的最类似于开发人员文件的文件(包含所有依赖项)是保存在我的build.gradle文件中的数据。build.gradle文件,我将尝试编辑.jar文件,但任何评论都将不胜感激!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-04 18:18:16

heroku引用的jar文件是项目的可执行jar文件。现在有两个案件:

  1. 对于maven springboot项目,我们在项目目录中使用"mvn包“。之后,您应该能够在目标文件夹中找到jar文件。
  2. 对于gradle springboot项目,您应该能够这样做。
票数 1
EN

Stack Overflow用户

发布于 2022-04-06 18:58:06

您还可以在项目根目录上创建名为Procfile的文件,并放入以下一行:web: java -Dserver.port=$PORT $JAVA_OPTS -jar build/libs/nameOfMyApp-0.0.1-SNAPSHOT.jar

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67477131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档