EmbulkプラグインをJava11で作りたいと思って、今年の正月はそれを試していました。
Embulk0.11/1.0でプラグインの作り方が変わるらしいので、どうせならその新しい方法にしてみようと思ったんですが、情報が少なくて、いろいろハマりましたね^^;
新しいプラグインを作るための環境構築については説明があったんですが、以前使っていたメソッドが色々deprecatedになっているのに新しくどれを使えばいいのかの説明はほとんど無いしorz
JUnitでのテストについてはほぼ従来通りの方法で出来ました。(Embulk0.10向けのEmbulkPluginTesterを作りました)
EmbulkEmbedの使い方がだいぶ変わっていて、データ受け渡しも今までの方法では出来なかったので、EmbulkTestOutputPluginではstaticフィールド経由で受け渡すという苦肉の策になってしまいましたがorz
しかし最悪なのは、作ったプラグインをどうやって実行するかの方法が全く分からないことでした。
embulk runをリモートデバッグでデバッグ実行しながら内部構造を調べて、Mavenローカルリポジトリーから自作プラグインを読み込む方法があるのは分かりました。
しかし依存ライブラリーも全てMavenローカルリポジトリーに有る必要があって、しかもGradleを使っているとGradleのディレクトリーにダウンロードされているのでMavenローカルリポジトリーにコピーしないといけないけれどディレクトリー構造が違うのでそのままではコピーできないという罠があって面倒くさすぎる…orz
そこでMavenローカルリポジトリーにダウンロードする方法が何かあるだろうと思って調べていたら、joker1007さんのサイトを発見しました。これ、Embulkプラグインを実行する為に自分が調べていたのと全く同じことが書いてあるやんけ!orz
そんな訳で、なんとか実行するところまで漕ぎ着けました。ありがたや、ありがたや。
残ったのはJava11で実行する方法でしたが、これも何とかなりました。
とはいえ現時点では面倒な手順が色々必要なので、早いところ0.11/1.0版のプラグインのリリース方法・インストール方法・実行方法を確立してほしいですね。
※コメント投稿者のブログIDはブログ作成者のみに通知されます