🐙
JShellでライブラリを追加しデバッグする (Gradleの場合)
Springを使ってるプロジェクトで「あれ、これ、こうするとどうなるんだっけ?」みたいなときが個人的にはわりとあります。そんなときJShellを使って動きを確認したいけど、Springは使ってるライブラリの数が多いから気軽にできない…!そんな悩みを解決します。未熟者め、精進せい。
なお、ネタ元は下記ブログで、そちらはMavenを使用していたのでそれをGradleでも動かせるようにしたという感じです。ありがとうございます。GradleもMavenも何もわからん。
下記のコードを build.gradle とかに突っ込んで動かせばOKです。
tasks.register('list') {
FileCollection compileClasspath = configurations.compileClasspath
dependsOn compileClasspath
doLast {
var classPaths = compileClasspath.filter { File file -> file.name != 'main' }.collect { File file -> file.path };
println "--class-path ${classPaths.join(':')}"
}
}
$ gradlew list
# 出力された内容をコピーしておく
--class-path /foo/bar.jar:/foo/baz.jar:...
$ jshell --class-path /foo/bar.jar:/foo/baz.jar:...
本当は参考元のようにtxtに出して cat
すればスマートですが、とりあえず目的は達成できているのでヨシ!
Discussion