java - 如何在不构建项目两次的情况下通过 Travis CI 部署到 Heroku?

标签 java heroku travis-ci jhipster

我有一个 JHipster 项目,我想通过 Travis CI 构建,然后部署到 Heroku。然而,即使 Travis CI 通过了构建,它也会将整个代码提交给 Heroku,然后 Heroku 会尝试再次构建整个项目,这违背了让 Travis CI 处于中间位置的目的。

有没有一种方法可以使用 Travis CI 构建我的项目,然后将构建的 WAR 部署到 Heroku?

鉴于 JHipster 使用 Spring Boot,我只需要 WAR 来运行应用程序。

这是我的 .travis.yml 文件:

language:
- java
jdk:
  - oraclejdk8
sudo: false
env:
  - MAVEN_CUSTOM_OPTS="-Pprod,heroku -DskipTests"
before_install:
- npm install -g npm
- rm -fr /home/travis/.npm/
- npm cache clean -g
- npm install grunt-cli -g
- npm install
install:
- mvn package -Pprod -DskipTests 
script: true
notifications:
  webhooks:
    on_success: change
    on_failure: always
    on_start: false
deploy:
  provider: heroku
  api_key:
    secure: [key]
  skip_cleanup: true

另外,如果有另一种方法可以通过这个过程部署一个Spring Boot应用程序,那就太好了。

谢谢。

最佳答案

您可以安装 heroku-deploy Travis CI 上的插件并以与您相同的方式部署 deploy to Heroku locally .

其实这就是heroku-deploy插件自己做的测试,可以拿来举例。 setup script从以下位置下载工具带的 Ubuntu 安装程序:https://toolbelt.heroku.com/install-ubuntu.sh

然后您只需要在安装脚本中使用此命令安装插件:

heroku plugins:install https://github.com/heroku/heroku-deploy

并将您的 API key 设置为 .travis.yml 中的安全变量

关于java - 如何在不构建项目两次的情况下通过 Travis CI 部署到 Heroku?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36111441/

相关文章:

java - 如何比较Java中几乎相似的字符串? (字符串距离测量)

java - monitor对象在synchronized block 中有什么作用?

ruby-on-rails - 为什么我能在 Heroku 看到这么多 worker ?我如何限制其他员工的访问权限?

ubuntu - 如何在 Travis CI 上缓存全局 NPM 包?

java - Swing java 中出现错误 - IllegalArgumentException

Java 和多媒体

javascript - Heroku API 与curl 配合使用效果很好,但我在使用XMLHttpRequest 时遇到了麻烦。 XHR、Heroku 还是我的错?

django - 适用于付费测功机的 Heroku 免费 SSL 无法在 "old"应用程序上运行

github - 在多个存储库之间共享 Travis 配置

macos - Travis OS X 测试 Postgres