Spring Boot解説第6回(開発環境編：Gradleトラブルについて)

こんにちは！
情創 技術開発局の@TEBASAKIです。
なぜストローは先が曲がるものと曲がらないものがあるのでしょうか？
気になって手羽先が喉を通りません。

今回はGradleトラブルについての解説です。

# Gradleのトラブル
build.gradleをきちんと記述したにも関わらず、
ビルドや実行時にエラーとなってしまうことがあります。
今回はそのようなトラブルの対処法を紹介します。

## gradle-x.x-bin.zipが見つからない
以下のようなエラーメッセージが出て、
操作が中止されてしまうことがあります。

![image](https://qiita-image-store.s3.amazonaws.com/0/116031/5a2dff48-5f98-ed9a-3681-d17711b27c44.png)

このような状況になった場合、次の操作を行います。

### １．gradle-wrapper.propertiesの確認
パッケージ・エクスプローラーの、
プロジェクトフォルダ→gradle→wrapper→gradle-wrapper.propertiesを開きます。
distributionUrlに設定されているGradleのバージョンが、
想定しているバージョンか確認します。
![image](https://qiita-image-store.s3.amazonaws.com/0/116031/6367a88a-887b-56db-736b-b70d5e253de5.png)

もし異なっていたら、distributionUrlを想定のバージョンに修正します。
その後、プロジェクトを右クリック→Gradle→すべてリフレッシュを行います。

### ２．プロジェクト直下の.gradleフォルダの確認
パッケージ・エクスプローラーの、
プロジェクトフォルダ→<font color="red">**.gradle**(gradleではない)</font>下のフォルダに、
想定しているバージョンの名前のフォルダが存在するか確認します。
![image](https://qiita-image-store.s3.amazonaws.com/0/116031/306a5507-31d4-1e14-4db3-a3a58ba6f01f.png)
もし異なっていたら、そのフォルダを削除します。
その後、プロジェクトのGradleリフレッシュを行います。

### ３．Gradleユーザー・ホームの確認
Gradleの共通フォルダの中身を確認します。
デフォルトではC:\Users\\{ユーザー名}\\.gradleになっています。
.gradle→wrapper→distsの下に,
想定しているバージョンのフォルダが存在するか確認します。
![image](https://qiita-image-store.s3.amazonaws.com/0/116031/a57f4cff-0943-f030-4a34-b2c5c5fbba2c.png)


存在しなかったときは、.gradleフォルダそのものを削除します。
削除方法については後述の[「Gradleのキャッシュフォルダ削除方法」](#gradle%E3%81%AE%E3%82%AD%E3%83%A3%E3%83%83%E3%82%B7%E3%83%A5%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E5%89%8A%E9%99%A4%E6%96%B9%E6%B3%95)を参照してください。
その後、プロジェクトのGradleリフレッシュを行います。

### ４．GradleのURI設定
ここまでの操作で解決しなかった場合、
Gradleのバージョンを直接設定します。
ウィンドウ→設定→GradleのGradleディストリビューションを、
URIに設定し、そこに想定のバージョンのURIを設定します。
![image](https://qiita-image-store.s3.amazonaws.com/0/116031/469388c4-3e4a-0b99-58cf-698f7fd5a743.png)

その後、プロジェクトのGradleリフレッシュを行います。

### ５．コンソールの確認
以上の操作を行っても解決しない場合、
Gradleのエラーが原因でない可能性があります。
エラー発生時のコンソール画面を確認し、
エラーメッセージを確認してください。

ちなみに私の場合は、
すでにTomcatを起動していたがために、
組み込みTomcatが起動できずエラーとなっていました。
同じポートを使用していることが原因だったのですが、
エラーメッセージを鵜呑みにしたため、
解決するのにとても苦労しました。

## Gradleをリフレッシュしてもjarがダウンロードされない
build.gradleのdependenciesに依存関係を追加し、
Gradleをリフレッシュしてもjarファイルがダウンロードされないことがあります。
このときはGradleのキャッシュが悪さをしていることが多いので、
キャッシュフォルダを削除します。
削除方法については後述の[「Gradleのキャッシュフォルダ削除方法」](#gradle%E3%81%AE%E3%82%AD%E3%83%A3%E3%83%83%E3%82%B7%E3%83%A5%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E5%89%8A%E9%99%A4%E6%96%B9%E6%B3%95)を参照してください。

その後、プロジェクトに対して、
右クリック→Gradle→すべてリフレッシュを行います。

それでもjarファイルがダウンロードされない場合は、
eclipseの設定でユーザーホームを設定します。
ウィンドウ→設定→Gradleの、Gradleユーザー・ホームのディレクトリに、
出力先のパスを指定します。
![image](https://qiita-image-store.s3.amazonaws.com/0/116031/cc8a631a-9228-c602-f24c-1f707613ec26.png)

その後、先ほどと同様にプロジェクトをリフレッシュします。

以上の操作を行っても改善されない場合は、
eclipseを再起動して確認してみましょう。

## Gradleのキャッシュフォルダ削除方法
Gradleのキャッシュフォルダはデフォルトでは、
C:\Users\\{ユーザー名}\\.gradleです。

これをそのまま削除しようとすると、
削除できないという旨のエラーメッセージが出ることがあります。
java.exeが起動したままになっていることが原因です。

そこでタスクマネージャーを開き、
プロセスからjava.exeを探してプロパティを確認します。
![image](https://qiita-image-store.s3.amazonaws.com/0/116031/780a6f06-483c-d20f-d104-8165e0721149.png)

java.exeの場所が問題なければ、
プロセスの終了でjava.exeを終了します。
![image](https://qiita-image-store.s3.amazonaws.com/0/116031/7fd23ac7-9c33-1c2f-ecd7-221960e34131.png)

その後、.gradleフォルダを削除します。
これでGradleのキャッシュを削除できます。


今回はここまでです。
それではまたお会いしましょう！


# 参考ページ
[Gradleを使ったWebアプリケーションのさくさく開発（トラブルシューティング編） - Splash of waters - 2nd. Season](http://jappy.hatenablog.com/entry/20130308/1362756946)