Scalaでデータ移行ツールを作成した時の話
職場でPlayFrameworkを使用しており、 ツールの実行ごとに複数環境のDB接続設定情報ファイルを個別に指定して読み込ませたかったため、 実行時にファイルを指定できるようにした。
ファイル読み込みにcom.typesafe.configパッケージのConfigFactoryを使用
import com.typesafe.config.Config import com.typesafe.config.ConfigFactory object Migration { def main(args: Array[String]): Unit = { val config: Config = ConfigFactory.load() val url: String = config.getString("db.default.url") val user: String = config.getString("db.default.user") val pw: String = config.getString("db.default.password") ・・・省略 } }
このような感じでファイルを読み込んで値を取得することができる。
あとはjarを作成する。(jarの作成方法について記事の趣旨と異なるため割愛する)
そしてjarを実行する際にオプションに「-Dconfig.file」を指定する。
java -Dconfig.file="/hoge/test.conf" -jar [実行可能ファイル]
「-Dconfig.file」を指定することによりjarにパッケージングされていない設定ファイルを読み込むことができる。
ちなみにクラスパス上の設定ファイルを指定したい場合は、「-Dconfig.resource」を使用する。
以上