derbydumpを使用してderbyDBをSQLにdumpする際のエラー対処

githubで公開されているderbydumpを使用して、derbyDBからSQLのdumpファイルを生成しようとした際にエラーを見つけましたのでその対処方法を掲載します。
はじめに
そもそもderbyDBとは?という方は下記の公式サイトをご覧ください。
(残念ながら日本語翻訳されているものがないですが…)
ざっくりと説明してしまうとJavaで実装されたRDBMS(Relational Database Management System)です。
エラー環境
gitとJavaをあらかじめインストールした状態から始めます。
今回発生した環境のバージョンは以下の通りです。
- Java 10.0.1
あとはderbydumpのREADMEに記載のHow to use
の手順に進めるだけ。
…のはずでしたが、6つ目の手順./gradlew jar
でエラーがありました。
$ ./gradlew jar
(省略)
FAILURE: Build failed with an exception.
* What went wrong:
Could not determine java version from '10.0.1'.
原因
derbydumpではビルドの実行にGradleというビルドシステムを使用していて、先ほどのコマンド中にダウンロードしているGradle 4.0
では、Java 10.0.1
に対応していないということでした。
対処方法
Gradle 4.2.1で既にバージョン対応されていたので、ダウンロードするバージョンを変更すれば良さそうです。
derbydumpの/gradle/wrapper/gradle-wrapper.properties
でダウンロードするファイルが指定されていたのでそこを変更します。
現在の最新版は4.8.1ですのでそれを使用します。
#Tue Jul 11 13:07:57 AEST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
# 6行目を以下のように修正
distributionUrl=https\://services.gradle.org/distributions/gradle-4.8.1-bin.zip
そして先ほどの./gradlew jar
を実行します。
無事ダウンロードできたようなのでこれでようやく!
…と思ったら次の手順で。
$ java -jar build/lib/derbydump-1.0-SNAPSHOT.jar
Error: Unable to access jarfile build/lib/derbydump-1.0-SNAPSHOT.jar
よくよくファイルを見に行ってみると存在していませんでした。
ダウンロードバージョンの変更でファイルも変更されていたようです。
該当ファイルらしきものがあったのでこちらで実行してみる。
$ java -jar build/libs/derbydump-1.3.jar
無事sqlファイルが生成されました。(テーブルのCREATE文は入ってないのですね…)
derbydumpの方でエラー対応が入るまではこの方法でとりあえずは対処できますので、もしお使いになる方がいましたらご参考までに。
ただgithubに上がっているファイルの書き換えがあるので、お気をつけください。