Androidでの開発やJavaなどのJVM言語での開発で、あれ、このライブラリって何に依存しているんだっけ?って思うことよくありますよね?
皆さんはどのように確認しているでしょうか?
https://mvnrepository.com/ などのサイトを見たり、 ./gradlew dependencies
で確認するなどさまざまだと思います。
今日はScalaで書かれたCoursierというCLIツールが便利だったので紹介します。
https://get-coursier.io/
使い方
ターミナル上で coursier resolve maven_artifact
という感じで確認できます
$ coursier resolve io.circe:circe-core_2.12:0.10.0
io.circe:circe-core_2.12:0.10.0:default
io.circe:circe-numbers_2.12:0.10.0:default
org.scala-lang:scala-library:2.12.6:default
org.scala-lang:scala-reflect:2.12.6:default
org.typelevel:cats-core_2.12:1.4.0:default
org.typelevel:cats-kernel_2.12:1.4.0:default
org.typelevel:cats-macros_2.12:1.4.0:default
org.typelevel:machinist_2.12:0.6.5:default
-t
でツリー状にも依存関係を確認できます。
$ cs resolve -t io.circe::circe-generic:0.12.3
Result:
└─ io.circe:circe-generic_2.13:0.12.3
├─ com.chuusai:shapeless_2.13:2.3.3
│ └─ org.scala-lang:scala-library:2.13.0
├─ io.circe:circe-core_2.13:0.12.3
│ ├─ io.circe:circe-numbers_2.13:0.12.3
│ │ └─ org.scala-lang:scala-library:2.13.0
│ ├─ org.scala-lang:scala-library:2.13.0
インストール方法
Macだと以下のようにしてインストールできるようです。
https://get-coursier.io/docs/cli-installation
brew install coursier/formulas/coursier
Google Maven Reposiotryにあるリポジトリを見る
Androidの開発で欠かせないGoogle Maven Reposiotryを見るには以下のようにして行います。
cs resolve -t -r https://maven.google.com -r https://jcenter.bintray.com androidx.ui:ui-livedata:0.1.0-dev12|view -
└─ androidx.ui:ui-livedata:0.1.0-dev12
├─ androidx.compose:compose-runtime:0.1.0-dev12
│ ├─ androidx.annotation:annotation:1.1.0
│ ├─ org.jetbrains.kotlin:kotlin-stdlib:^[[33m1.3.70 -> 1.3.71^[[0m
│ │ ├─ org.jetbrains:annotations:13.0
│ │ └─ org.jetbrains.kotlin:kotlin-stdlib-common:1.3.71
│ ├─ org.jetbrains.kotlin:kotlin-stdlib-common:^[[33m1.3.70 -> 1.3.71^[[0m
│ ├─ org.jetbrains.kotlinx:kotlinx-collections-immutable-jvm:0.3
│ │ ├─ org.jetbrains.kotlin:kotlin-stdlib:^[[33m1.3.50 -> 1.3.71^[[0m
│ │ │ ├─ org.jetbrains:annotations:13.0
│ │ │ └─ org.jetbrains.kotlin:kotlin-stdlib-common:1.3.71
│ │ └─ org.jetbrains.kotlin:kotlin-stdlib-common:^[[33m1.3.50 -> 1.3.71^[[0m
│ ├─ org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.6
│ │ ├─ org.jetbrains.kotlin:kotlin-stdlib:1.3.71
│ │ │ ├─ org.jetbrains:annotations:13.0
終わりに
依存関係を調べるときに手軽に調べられるので便利そうでした。
依存性の確認以外にも、まとめてjarにしてくれる機能や起動してくれる機能などがあって便利だったので、公式サイトを確認してみてください。
https://get-coursier.io/docs/overview