当前位置: 首页 > 知识库问答 >
问题:

为JavaSpring Boot Gradle项目构建Heroku Procfile

长孙波鸿
2023-03-14

我的应用程序在本地运行得非常好,并与Heroku一起部署,但我正在努力构建一个Procfile,声明启动应用程序应该执行什么命令。我是一名新开发人员,在Linux进程模型如何工作方面需要一些帮助。

Heroku留档为JavaSpring Boot项目提供了两个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。实例HelloWorld

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

这是我当前的文件:

web:java$java_OPTS-cp gradlew java/com/deepdraft/deep_draft/DeepDraftApplication。javaprocfile

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

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

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

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

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

(编辑2)哇,我觉得我离得太近了。收到新的错误消息令人兴奋。哈哈。它说“没有主清单属性”在列表中。jar文件。新日志我发现了这个关于添加清单属性的堆栈溢出对话,但我无法编辑这个压缩文件,而我拥有的与开发人员的文件最相似的文件(包含所有依赖项)是我构建中保存的数据。格雷德尔档案。建筑gradle文件我将尝试编辑。jar文件,但如有任何意见,将不胜感激!

共有1个答案

岳凯康
2023-03-14

heroku引用的jar文件是项目的可执行jar文件。现在有两种情况:

  1. 对于maven springboot项目,我们在项目目录中使用“mvn包”。之后,您应该能够在目标文件夹中找到jar文件
 类似资料:
  • 开始 建构流程是整个项目最核心的地方之一,通过我们所熟知的 webpack,完成了 template 转换为 wxml 和 样式转换优化以及其他的若干代码的拼接压缩混淆等操作,最终使之可以运行在微信小程序的环境中。 如果你不了解什么是 webpack, 可以查看 webpack文档 。 用一个图来描述: app.vue & main.js ┌---------┐

  • 主要内容:Eclipse 构建项目Eclipse 构建项目 一个项目可以有零个或多个与之关联的构建器。Java 项目与 Java 构建器相关联。查看与项目相关的构建器 - 在 Package Explorer 视图中,右键单击该项目并选择 Properties。 在左侧树中单击 Builders。 Java 构建器将 Java 项目与其他类型的项目区分开来。通过单击 New 按钮,您可以将 Ant 构建器与 Java 项目相关联。

  • 多项目 通常在一个工程中构建多个项目间会有关联,尤其是它们都依赖一个项目时可以很容易的更新项目 在一个工程中每个子项目都会有自己的源代码目录、生成各自的jar包当执行 package 时. 一个项目通过申明一个 Project 类型的懒值来定义,例如: lazy val util = project lazy val core = project 这个变量值名称将被用来当做 Project Id

  • 简介 每一个活跃的项目会随着时间慢慢增长的,一开始可能只是个很小的项目到后面可能包含很多包和类。为了提高可维护性和解藕的目的,你可能想把项目根据逻辑和功能来划分成一个个模块。模块通常按照等级来组织,相互之间可以定义依赖。 Gradle给项目模块化提供了强大的支持,在Gradle中每个模块都是一个项目,我们称之为多项目构建,这一章介绍Gradle的多项目构建。

  • 上一节我们简要介绍了如何编写一个单机的To Do应用,接下来要打包部署成可执行的应用,我们需要编译源代码,生成的class文件需要打包到JAR文件中。JDK提供了javac 和jar工具帮助你实现这些任务,但是你也不想每次源代码发生变化时你都手动去执行这些任务吧。 Gradle插件能够自动化完成这些任务,插件引入了一些领域特有的观念,其中一个Gradle插件就是java插件,Java插件不仅仅只有

  • 如何用好 GitHub 如何用好 GitHub,并实践一些敏捷软件开发是一个很有意思的事情.我们可以在上面做很多事情,从测试到 CI,再到自动部署. 敏捷软件开发 显然我是在扯淡,这和敏捷软件开发没有什么关系。不过我也不知道瀑布流是怎样的。说说我所知道的一个项目的组成吧: 看板式管理应用程序(如 trello,简单地说就是管理软件功能) CI(持续集成) 测试覆盖率 代码质量(code smell

  • 问题内容: Eclipse VERSION 3.7似乎存在一些问题 当我编译单个项目(通过ant或buildProject)时,Eclipse开始在工作空间中构建所有项目,这需要很长时间。 我尝试过两种方式来构建项目- 右键单击ant文件,选择Run And And Build。 在Eclipse中右键单击项目,选择Build Project。 Eclipse会以两种方式首先开始构建其他打开的项目

  • 主要内容:多项目构建的结构,指定常规构建配置,项目指定配置和依赖关系,Gradle多项目构建的示例,子项目配置,参考可以轻松处理各种大小规模的项目。小项目由一个单一的构建文件和一个源代码树构成。 大项目可以将其拆分成更小的,相互依赖的模块,以便更容易理解。Gradle完美支持这种多项目构建的场景。 多项目构建的结构 这种构建有各种形状和大小,但它们都有一些共同的特点 - 在项目的根目录或主目录中都有一个文件。 根目录或主目录都有一个文件。 具有自己的构建文件的子目录(某些多项目构建可能会省略子项