初めてGradle x Javaをゼロから書いてCloud Runで動かしてみた

※ 意味のあるものを作ったわけではない。

できあがったのはコレ。

wtnabe/example-simple-gradle-and-java

試したかったこと

  • Gradle で作られているプロジェクトを Cloud Native Buildpacks でビルドして Cloud Run Jobs で動かす

やったこと

以下は Java 11 で試した。

  1. STDOUT に文字を出すだけの Java アプリを作る
  2. Gradle を使って jar を作る
  3. Cloud Native Buildpacks を使って Gradle のプロセスを動かして Docker イメージ化
  4. できた Docker イメージを Cloud Run Jobs で動かす
  5. 動いている様子を 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 での依存管理は結局行なっていない(簡単すぎて依存がない)

More