2016年5月28日土曜日

Eclipse + Gradle でGradleがうまく動かなくなったら

Eclise + Gradle を使用していたが、ある時から
Could not fetch model of type 'EclipseProject' using Gradle distribution
'https://services.gradle.org/distributions/gradle-2.2.1-bin.zip'
というエラーが出てGradleがうまく動かなくなった。

【環境】
Windows 7
Eclipse 4.4 Luna
Gradle (STS) Integration for Eclipse
(使用されてるGradle versionは2.2.1)
プロキシ使用環境

【解決策】
Gradleが動作するJVMにプロキシー設定をする。
Eclipseメニュー→ウィンドウ→設定
Gradle(STS)→引数 の
JVM引数で「使用」を選択し、以下を設定
-DproxySet=TRUE
-DproxyHost=xxx.your.proxy.server ←以下ご自身の環境のプロキシを設定してください
-DproxyPort=xxx
-Dhttp.proxyUser=xxx
-Dhttp.proxyPassword=xxx
※proxyUser, proxyPassword はプロキシ認証する場合だけ設定

【考察】
プロジェクトはTomcatで動かしているが、そういえば
デバッグしててTomcatが変な落ちかたをしたので、
タスクマネージャーからTomcatのJVMを強制停止したが、
実はTomcatではなくGradleDaemonだったかも知れない。
それでプロキシ設定がふっとんだ?

(※そもそもGradleDaemonがEclipse側のプロキシ設定を使ってて、
Eclipseを行儀よく落とせばGradleDaemon側の設定も飛ばなくて、
GradleDaemonを強制終了した場合だけプロキシ設定の連携が
吹っ飛んでしまうのか、そこらへんの内部の細かい動作は不明。
というか、GradleDaemonが裏で別プロセスとして動いていることさえ、
普通に使ってる分には知らない人の方が多いのではないだろうか?)

ちゃんとjpsコマンドでプロセスを確認してから落としましょう。
しかもWindowsだとTomcatはタスクマネージャー上だと
「 javax」だが、GradleDaemonはただの「java」だった。
javaxはいなかったと思うのでTomcatは既に落ちてたな。これは。
(つまりGradleDaemonを自分で強制終了してた!
 主犯は自分自身だった。。)

※吹っ飛んだGradleとEclipseの連携を戻せればベスト。
 'EclipseProject'あたりを設定し直せば良いのだろうか?

※ちなみにWindowsのタスクマネージャーでもjava/javaxで
 何が動いているか確認できなくもない。

タスクマネージャーを開いて、
詳細タブ → ヘッダーを右クリック → 「列の選択」
→ 「コマンドライン」にチェックを入れてOK

コマンドライン列が表示されるが、java引数は長いので、
プロセスを選択して Ctrl + c で選択行の情報がコピーできる
ので、それをテキストエディタなどに貼り付けて確認する。。。
素直にjpsを使いましょう。


0 件のコメント:

コメントを投稿