ニュース

「gradlew」と「./gradlew」の違い

Gradle

今回はGradleの話です。にわかなので鵜呑みにしないでください。

Gradleとは

Java環境におけるビルドシステムのひとつです。

複数人で何か作る時、ライブラリとかのバージョンが違うと自分のところでは動くのに他の人のところでは動かないなんてことが起こります。

そこでGradleにコードとして依存関係周りのほにゃほにゃを記述してそれをGitなりで共有して、みんなでその依存関係を使うということがやりたくなります。

そこで便利なのがGradleというやつなのです。

Gradleラッパーとは

みんなでGradle使おうぜ!となるのは良いですが、じゃあGradleのどのバージョンをインストールするの?とか結局全員インストールするんかい!という問題が発生します。

そこでGradleラッパーを使います。

これもGitなどに含めておけばなんとGradleをインストールすることなく、しかもみんな同じバージョンのGradleを使うことができちゃいます!(正確には勝手にインストールして勝手にそれを使ってくれます)

ここでgradleコマンドに代わりにgradlewコマンドを使うことになります。こうすることでローカルのgradleではなく、そのプロジェクトと同じバージョンのGradleを使うことができます。すごい!

gradlew

ここまでは適当にググってたらわかります。

しかしその無数の記事を読んでもわからないことがありました。

それは、

「gradlewと./gradlewって同じ使い方されていないか?何が違うんだ?」

ということです。

結論から言うと、Windowsではgradlew、Mac含むUnix系では./gradlewということになります。

理由はgradleラッパーを起動するのには2つの方法が用意されていて、

  • gradlew – Gradleラッパー起動用のシェルスクリプト
  • gradlew.bat – Gradleラッパー起動用のバッチファイル(Windows用)

という2つのファイルが作られるからです。

なのでWindowsではバッチファイルを実行するために「gradlew」、Macではシェルスクリプトを実行するために「./gradlew」とコマンドを叩けばよいということになります。

参考