Eclipse+MavenからIntelliJ idea+Gradleに移行して困ったこと


開発環境を渡されたのですが、いろいろ動いなくて 、そのときに試行錯誤したときのメモです。
Eclipse + Mavenおじさんが、IntelliJ idea + Gradle 大好きおじさんに変わっていったときのメモ

[Gradle]Gradleって事前にインストールする必要ないの?

必要ない

Windowsの場合は、gradew.bat を用いてインターネットから取得するため不要
つまり、職場の場合は、プロキシを記載しないと、ライブラリが取得されずビルドされない

大人数で開発すると、どうしてもMavenのインストールや環境変数でつまる人が出て、
問い合わせが殺到するが、そういったもの一切がなくなる。ほんとGradle素晴らしい

[Gradle]プロキシの設定はどこにすればよい?

gradlewとgradlew.batファイルを修正する
環境変数(set/export)ではなく、JVM_OPTSを記載する箇所があるので、こちらにプロキシを書く
コミットすればみんなプロキシにはまらない。すぱらい

# Add default JVM options here. You can also use JAVAこ_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS="-DproxyHost=proxy.co.jp -DproxyPort=8080 -Dhttp.proxyUser=**** -Dhttp.proxyPassword=**** -Dhttps.proxyUser=**** -Dhttps.proxyPassword=***"

[Gradle]pom.xmlに該当するのは何?

build.gradleファイルが該当する
記載方法が複数あり、混乱するが、コレばっかりは学習を積みかねて慣れるしかない

[Gradle]SNAPSHOTの最新が取得されない

SNAPSHOTは常に最新を取得するのがMavenの仕様となっているが、Gradleでビルドしても最新が落ちてこない
protoや、swaggerからModel/Stubを生成して、Nexusにアップロードすることはよくあるが、最新が取得されず発狂してました
ご丁寧にMavenの仕様を無視して24時間キャッシュする仕様だった

以下の内容をbuild.gradleに記載する。コメントはちゃんと残しましょう。

build.gradle
// ビルド時に、常に最新のSnapshotリポジトリを取得するようにする
// MavenはSnapshotは常に最新版を取得する仕様だが、Gradleは24時間経過したリポジトリのみ最新を取得する
configurations.all {
    resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}

[IntelliJ]コードに変更を入れても、フォーマッターが走らない、自動でビルドが走らない

SaveActionプラグインを入れましょう
マクロで設定する記事が見つかったりしますが、エディタを破壊する恐れがあるのでやめましょう

まず、お仕事では、IntelliJにプロキシ情報の設定をします

プラグインを追加します

プラグインの設定を追加します

[IntelliJ]ショートカットキーがわからない

ストレスがたまるポイントですが、丁寧に学習&訓練していくしかないです。

目的 IntelliJ Eclipse
クイック・フィックス [Alt] + [Enter] [Ctrl] + 1
アウトラインの表示 [Ctrl] + O [Ctrl] + E
呼び出し階層 [Ctrl] + [Alt] + h [Ctrl] + [Alt] + h
定義へ移動 [Ctrl] + b F3
テストクラスへ移動 [Ctrl] + [Shift] + t [Ctrl] + 9

補足

InteliJのショートカットキーをEclipse風にすることもできます

[IntelliJ]コードを最新化しても、SpringBootに即座に反映されない

SpringBootのDevToolsを入れていても、コードの内容が即座に反映されない

IntelliJに自動ビルドの設定を追加

compiler.automake.allow.when.app.runningの設定

Help > Find Action... から、"Registry" を入力します