【问题标题】:Spring boot + angular 2 Heroku deploymentSpring Boot + Angular 2 Heroku 部署
【发布时间】:2017-12-03 12:53:44
【问题描述】:

我有一个大问题。我正在尝试在 heroku 上部署 Spring Boot + Angular 2 Web 应用程序,但不知道该怎么做。我尝试了几件事,包括:

  • 制作 .war 文件并将其部署到 heroku(来源 here

  • 将项目部署为标准 java 应用程序(来源 here

但这些都不起作用。第一次尝试没有奏效,因为我经常找不到 404,而第二次尝试没有奏效,因为我认为在 Procfile 中描述的位置找不到一些 jar 文件。 任何人都可以给我一个链接,一个例子,或者写一个逐步说明如何实现这一点。谢谢你。

【问题讨论】:

    标签: java angularjs spring heroku


    【解决方案1】:

    最简单的方法:

    1. 在 Angular 2 项目根目录中运行 ng build(如果您使用 angular-cli)并将 dist 文件夹的内容复制到 src/main/resources/static/。
    2. 创建 Procfile(用于 maven):

      网络:java $JAVA_OPTS -Dserver.port=$PORT -jar 目标/*.jar

    3. 提交并推送更改。

      此外,您需要 spring-boot-starter-web 存在于依赖项中。其中嵌入了 tomcat 并自动配置为从静态文件夹中提供静态内容。

    【讨论】:

    • 这里的问题是我的dist文件夹没有生成。
    • @kantagara,如果您使用angular-cli 生成了一个角度项目,那么一切都应该正常工作。运行:ng new project_new --ng4
    • @kantagara 你也会发现this很有用。
    • 非常感谢您的解决方案。我找不到我的 dist 文件夹没有生成的确切原因,所以我创建了全新的 angular 项目,安装了所有必需的依赖项并将我的所有源文件传输到该项目。之后我运行 ng build 并生成 dist 文件夹。我遇到的下一个问题是没有从 spring 中得到任何 404 not found 错误,但我使用这里描述的解决方案 stackoverflow.com/questions/38516667/… 处理了这个问题。
    【解决方案2】:

    使用 JHipster:https://jhipster.github.io

    安装后,运行:

    $ yo jhipster
    

    然后运行

    $ yo jhipster:heroku
    

    【讨论】:

    • 谢谢。但老实说,这对于现有项目的部署来说似乎工作量太大。还是我错了?
    【解决方案3】:

    如果您将应用程序部署为标准 Java 应用程序,则可以将其与 Node.js 构建包结合起来,在 Heroku 构建期间运行 ng build

    $ heroku buildpacks:add heroku/nodejs
    $ heroku buildpacks:add heroku/java
    $ git push heroku master
    

    Node.js 构建包将检测您的 package.json,安装 Node.js 并运行 npm。然后 Java 构建就可以正常进行了。

    有一个指南可以用 Grunt 做一些非常相似的事情:Using Grunt with Java and Maven to Automate JavaScript Tasks

    【讨论】:

      猜你喜欢
      • 2017-09-21
      • 2022-08-10
      • 2021-04-15
      • 2016-11-26
      • 2019-12-13
      • 2021-01-18
      • 2021-10-12
      • 1970-01-01
      • 2017-11-26
      相关资源
      最近更新 更多