初めてGradle x Javaをゼロから書いてCloud Runで動かしてみた
※ 意味のあるものを作ったわけではない。
できあがったのはコレ。
wtnabe/example-simple-gradle-and-java
試したかったこと
- Gradle で作られているプロジェクトを Cloud Native Buildpacks でビルドして Cloud Run Jobs で動かす
やったこと
以下は Java 11 で試した。
- STDOUT に文字を出すだけの Java アプリを作る
- Gradle を使って jar を作る
- Cloud Native Buildpacks を使って Gradle のプロセスを動かして Docker イメージ化
- できた Docker イメージを Cloud Run Jobs で動かす
- 動いている様子を Cloud Logging で確認(Cloud Run のダッシュボードはまとまってて扱いやすいね)
当たり前だけど 1, 2 でつまずいた。
3, 4 は 前回やったこと の復習。これが動いたので一応今回は満足。
初めて知ったこと
- Java では依存管理はビルドツールの管轄であることが多い
- java コマンドから動かすのとビルドは意味が違う
- ビルドツールがコードの配置を決める
- Gradle だと src/main/<言語>/ 以下言語>
- class 名とファイル名の case は一致していないと class を見つけられない
- Main-Class に main() メソッドが必要で、シグニチャも決まってる
- main のシグニチャが決まってるのは C もそうだったっけ?
- encoding が UTF-8 でもビルドツールに教えないといけない(なんかもうなんでもかんでも UTF-8 が標準だろうと思い込んでた)
まだできていないこと
- Gradle での依存管理は結局行なっていない(簡単すぎて依存がない)
- この辺りかな Learning the Basics