Gradleで条件によってdependencyを変える
こんにちは, 僕です。
近頃 Apache Beam にたまにパッチを送るのを趣味で行っているのですが、そこで学んだtipsを紹介します。 今回のテーマはGradleを使っていて条件によってdependencyを変えたい的な要件です。
ちなみにGradleのバージョンは6以降が対象です。
TL;DR
条件によってGradleのdependencyを切り替える。
Gradleだとできそうだなーと思って調べたら結構簡単に見つかりました。
こんな感じでgradleの実行時引数をとって分岐することができるとのこと。
$ gradle -Pgson dependencies --configuration implementation
これを利用すると呼び出しもとのgradleファイル内で変数を参照することも可能でした。 以下のような感じです。
// aaa.gradle spark_scala_version = '2.12'
// bbb.gradle // aaa.gradleから呼ばれる dependencies { // ... if(project.property("spark_scala_version").equals("2.11")){ runtimeOnly library.java.jackson_module_scala_2_11 } else { runtimeOnly library.java.jackson_module_scala_2_12 } // ...
こんな感じで、Javaのバージョンによって参照するライブラリのバージョン分けることも可能なようです。 先人に感謝