こんにちは。 エキサイト株式会社の三浦です。
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は、できることがたくさんある分かなり複雑な設定ファイルです。
この記事が、その理解のための一助となれば幸いです。