
こんにちは。 エキサイト株式会社の三浦です。
Javaの依存管理にGradleを使用する場合、build.gradleファイルを使うことになります。
ですがbuild.graldeでライブラリを管理する場合、 buildscript 、 plugins 、 dependencies といった複数の書き方があります。
今回は、それぞれの違いについて説明していきます。
buildscript plugins dependencies の違い
buildscript plugins dependencies の3つとも、「ライブラリをインストールする」という意味では同じです。
ですが、細かく見ると以下のような違いがあります。
dependencies の使い所
dependencies は、アプリケーションコード内で使いたいライブラリをインストールするために使用します。
例えば、アプリケーションコード内でAPIにアクセスしたい場合は、 dependencies を使用してHTTPリクエスト用のライブラリをインストールする、といった形です。
例
allprojects {
repositories {
mavenCentral()
}
}
subprojects {
// 必要になる部分で定義
dependencies {
implementation "org.apache.httpcomponents:httpclient:4.5.13"
}
}
buildscript plugins の使い所
buildscript と plugins は、ともにbuild.gradle内で使いたいライブラリをインストールするために使用します。
例えば、コードフォーマットをgradleのタスクとして定義したい、という場合は、build.gradle内でコードフォーマット用のライブラリが必要になるので、 buildscript や plugins でコードフォーマット用ライブラリをインストールする、といった形です。
なお、buildscript と plugins の使い分けですが、基本的には plugins で使用できるようにライブラリが開発されていたら plugins を使用するのが良いようです。
plugins の方が新しく出来たインストール方法であり、 buildscript に比べて簡単に記述できるようになっています。
pluginsの使用例
// 可能な限りファイルの最初の方で定義 plugins { id 'checkstyle' }
buildscriptの使用例
// 可能な限りファイルの最初の方で定義 buildscript { repositories { mavenCentral() } // buildscript内で使用するdependenciesは、あくまでbuildscript内で効力を持つものであり、 // 通常のdependenciesの様にアプリケーションコード内で使用できるようにはならない dependencies { classpath platform('software.amazon.awssdk:bom:2.17.160') classpath 'software.amazon.awssdk:s3' } }
最後に
build.gradleは、できることがたくさんある分かなり複雑な設定ファイルです。
この記事が、その理解のための一助となれば幸いです。