尝试将使用Gradle构建的Spring Boot应用程序部署到Heroku

简而言之

在将Spring Boot(gradle)部署到Heroku时,我遇到了一些意外的问题,所以写下这篇备忘录。
如果能对其他遇到困难的人有所帮助,我会很高兴。

环境

    • windows 10 Home

 

    • java 11

 

    • spring-boot 2.3.5

 

    gradle 7.1.1 (gradlew)

目录

    1. 前期准备

 

    1. 创建演示应用

 

    部署

事先准备

①创建一个Heroku账户
②安装Heroku命令行工具

参考链接:https://devcenter.heroku.com/ja/articles/heroku-cli
参考文章:学习如何部署Heroku初学者级别的应用

创建演示应用程序

暫時,想要看到動作,所以創建一個只回覆「hello」的示範應用程式。

一般来说,这个项目已经放在了GitHub上。
https://github.com/Takeuchi713/spring-boot-gradle-heroku

plugins {
    id 'org.springframework.boot' version '2.5.3'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'java'
}

group = 'com.takeuchi'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

test {
    useJUnitPlatform()
}

@RestController
@RequestMapping("/api")
public class HelloController {

    @GetMapping("/hello")
    public ResponseEntity<String> hello(){
        return new ResponseEntity<String>("hello", new HttpHeaders(), HttpStatus.OK);
    }
}

部署

使用控制台进行登录、创建Heroku应用程序、设置Git和部署等操作。

heroku-project.png

Heroku ~ git的初始设置

gitレポジトリ化
>git init

Herokuへログイン
>~\deploy-heroku-maven\heroku login

アプリの作成。名前をしていしないとherokuが適当に作ってくれる
>heroku create

アプリ名を変更 (still-harbo-16072はherokuが適当につけた名前)
>heroku apps:rename --app still-harbor-16072 spring-gradle-deploy

Herokuをremoteへ追加
>heroku git:remote -a spring-gradle-deploy

添加配置文件

デプロイ時のJavaバージョンを指定する設定ファイルを作成
>echo java.runtime.version=11 > system.properties

buildパスとdeploy時のportを一致させるための設定ファイルを作成
>echo web: java -Dserver.port=$PORT $JAVA_OPTS build/libs/heroku-demo-gradle-0.0.1-SNAPSHOT.jar > Procfile

※heroku-demo-gradleは自分のアプリ名

部署

全てコミット
>git add .
>git commit -am "first commit"

デプロイ
>git push heroku main

验证动作

hello-gradle.png

结束

暂时先确认能够使用最基本的设置将应用部署到Heroku上。
接下来想尝试带有Postgres的部署。

    herokuでspring-bootをgradleを使ってデプロイするときのコツ
广告
将在 10 秒后关闭
bannerAds