jimble

jimble コマンド#

使い方: jimble <コマンド>

  new <name>              プロジェクトの雛形を作る
  migrate                 未適用のマイグレーションを適用する
  codegen <ソースルート>   テーブル定義のコードを生成する(例: src/main/java)
  version                 版を表示する

入れる#

jimble のリポジトリからビルドして、PATH に通します。

git clone https://github.com/hidemikimura/jimble.git
cd jimble
./gradlew :jimble-cli:installDist
export PATH="$PWD/jimble-cli/build/install/jimble/bin:$PATH"

補足

CLI は Maven Central にありますが、そのままでは起動できませんio.jimble:jimble-cli の jar に Main-Class を入れていないので、 java -jar では動きません)。リポジトリからビルドしてください。

CLI が無くても始められます。jimble new が作るものは Gradle プラグイン の「まっさらから書く」に全文があります。 migratecodegen は Gradle のタスク(./gradlew migrate / ./gradlew codegen)でも走ります。

$ jimble version
jimble 0.4.0-SNAPSHOT

毎回書きたくなければ、~/.zshrc に上の export を足すか、リンクを張ってください。

ln -sf "$PWD/jimble-cli/build/install/jimble/bin/jimble" /usr/local/bin/jimble

注意

java として Java 25 が引ける必要があります。 起動スクリプトは JAVA_HOME か PATH の java を使うので、 古い Java だと UnsupportedClassVersionError になります。 生成したプロジェクトをビルドするのに Gradle 9 以上も要ります。

落とし穴

jimble を直したら installDist をやり直してください。 動くのは build/install/ にコピーされたほうなので、 直しただけでは反映されません。

手元でビルドした jimble を使うとき#

jimble new が作る build.gradle.kts は、CLI をビルドした版を参照します。 公開していない版(0.4.0-SNAPSHOT など)なら、先にローカルへ publishしてください。

./gradlew publishToMavenLocal
./gradlew -p gradle-plugin publishToMavenLocal

雛形の settings.gradle.ktsmavenLocal() を先に見るようにしてあります。 公開済みの版だけを使うなら、これは要りません。

jimble new#

jimble new my-blog

作られるもの:

my-blog/
	settings.gradle.kts
	build.gradle.kts
	gradle.properties
	.gitignore
	README.md
	src/main/java/myblog/App.java
	src/main/jte/myblog/index.jte
	conf/application.conf
	conf/logback.xml
	conf/migration/my_blog/001_create_note.sql.example

空のディレクトリは作りません。 使う段になってから作ってください。 .example が付いているものは、名前を変えれば有効になります。

名前の決まり:

  • 使えるのは英小文字・数字・-_ です
  • 先頭は英字です
  • パッケージ名は英数字だけ残したものmy-blogmyblog
  • DB 名は英数字以外を _ にしたものmy-blogmy_blog
  • Java の予約語や、既にあるディレクトリ名は断られます

理由はエラーメッセージに書いてあります。

補足

**DB も Redis も要らないものが出ます。**手を入れずにビルドして起動できます。 使うようになったら、build.gradle.ktsapplication.conf の コメントを外していく形にしてあります。

次にすること#

cd my-blog
gradle wrapper --gradle-version 9.7.1   # Gradle ラッパーを用意する(1回だけ)
./gradlew run           # 起動する
./gradlew jimbleRun     # ホットリロードで起動する
$ curl http://localhost:9000/hello
{"message":"hello, jimble"}

migrate / codegen#

プロジェクトの中では Gradle から呼びます。

./gradlew migrate
./gradlew codegen

io.jimble.db プラグインを入れておくと、compileJava の前に migrate → codegen が自動で繋がります。

中身は マイグレーションとコード生成、タスクと設定は Gradle プラグイン を見てください。

落とし穴

jimble migrate / jimble codegen を素で叩いても動きません。 どちらも設定(application.conf)とマイグレーションの SQL を クラスパスから探すので、アプリのリソースが見えている必要があります。 CI や本番で Gradle が使えないところでは、jar をクラスパスに足して呼んでください。

java -cp app.jar io.jimble.db.cli.JimbleDbCli migrate

版を確認する#

jimble version

jar の Implementation-Version を読んでいます。 雛形が参照する jimble の版もこれです(手で書いていません)。