尝试将使用Gradle构建的Spring Boot应用程序部署到Heroku
简而言之
在将Spring Boot(gradle)部署到Heroku时,我遇到了一些意外的问题,所以写下这篇备忘录。
如果能对其他遇到困难的人有所帮助,我会很高兴。
环境
-
- windows 10 Home
-
- java 11
-
- spring-boot 2.3.5
- gradle 7.1.1 (gradlew)
目录
-
- 前期准备
-
- 创建演示应用
- 部署
事先准备
①创建一个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 ~ 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
验证动作
结束
暂时先确认能够使用最基本的设置将应用部署到Heroku上。
接下来想尝试带有Postgres的部署。
- herokuでspring-bootをgradleを使ってデプロイするときのコツ