かんがるーさんの日記

最近自分が興味をもったものを調べた時の手順等を書いています。今は Spring Boot をいじっています。

AdoptOpenJDK を 11.0.6+10 → 11.0.7+10.2 へ、IntelliJ IDEA を 2019.3.4 → 2020.1.1 へ、Git for Windows を 2.26.0 → 2.26.2 へバージョンアップ

AdoptOpenJDK を 11.0.6+10 → 11.0.7+10.2 へバージョンアップする

※ksbysample-webapp-lending プロジェクトを開いた状態でバージョンアップしています。

  1. https://adoptopenjdk.net/?variant=openjdk11&jvmVariant=hotspot を見ると 11.0.7+10.2 がダウンロードできるようになっていましたので、11.0.7+10.2 へバージョンアップします。

    f:id:ksby:20200501210503p:plain

  2. インストール時に削除されるかもしれないので D:\Java\jdk-11.0.6+10 → D:\Java\jdk-11.0.6+10x にリネームします。

  3. OpenJDK11U-jdk_x64_windows_hotspot_11.0.7_10.msi をダウンロードして D:\Java\jdk-11.0.7.10-hotspot へインストールした後、環境変数 JAVA_HOME のパスを D:\Java\jdk-11.0.7.10-hotspot へ変更します。

    コマンドプロンプトから java -version を実行し、11.0.7 に変更されていることを確認します。

    f:id:ksby:20200501212515p:plain

  4. D:\Java\jdk-11.0.6+10x → D:\Java\jdk-11.0.6+10 に戻します。

  5. IntelliJ IDEA を再起動した後、プロジェクトで使用する JDK を 11.0.7+10.2 へ変更します。

  6. ダイアログ下部の「Configure」-「Structure for New Projects」を選択します。

    f:id:ksby:20200501213001p:plain

  7. 「Project Structure for New Projects」ダイアログが表示されます。画面左側で「Project Settings」-「Project」を選択後、画面右側の「Project SDK」の「New...」ボタンをクリックし、表示されるメニューから「JDK」を選択します。

    f:id:ksby:20200501213309p:plain

  8. 「Select Home Directory for JDK」ダイアログが表示されます。D:\Java\jdk-11.0.7.10-hotspot を選択した後、「OK」ボタンをクリックします。

    f:id:ksby:20200501213452p:plain

  9. 「Default Project Structure」ダイアログに戻るので、今度は「Project SDK」の「Edit」ボタンをクリックします。

    f:id:ksby:20200501213651p:plain

  10. 画面左側で「Platform Settings」-「SDKs」が選択された状態になるので、画面右上の入力フィールドで "11" → "11.0.7.10" へ変更します。

    f:id:ksby:20200501213916p:plain

  11. 次に中央のリストから「11.0.6+10」を選択した後、リストの上の「-」ボタンをクリックして削除します。

    f:id:ksby:20200501214058p:plain

  12. 「OK」ボタンをクリックして「Project Structure for New Projects」ダイアログを閉じます。

  13. 「Welcome to IntelliJ IDEA」ダイアログに戻ったら、ksbysample-webapp-lending プロジェクトを開きます。

  14. IntelliJ IDEA のメイン画面が開いたら、メニューから「File」-「Project Structure...」を選択します。

  15. 「Project Structure」ダイアログが表示されます。以下の画像の状態になっているので、

    f:id:ksby:20200501214328p:plain

    「Project SDK」を選択し直します。「Project SDK」を「11.0.7.10」に変更すると「Project language level」も自動で「SDK default (11 - Local variable syntax for lambda param」が選択されました。

    f:id:ksby:20200501214516p:plain

  16. 「OK」ボタンをクリックして「Project Structure」ダイアログを閉じます。

  17. メイン画面に戻ると画面右下に「Indexing...」の表示が出るので、終了するまで待ちます。

  18. Gradle Tool Window の左上にある「Refresh all Gradle projects」ボタンをクリックして更新します。

  19. clean タスク実行 → Rebuild Project 実行 → build タスクを実行して、"BUILD SUCCESSFUL" のメッセージが出力されることを確認します。

    f:id:ksby:20200501215714p:plain

  20. Project Tool Window で src/test でコンテキストメニューを表示して「Run 'All Tests' with Coverage」を選択し、テストが全て成功することを確認します。

    f:id:ksby:20200501220347p:plain

  21. 特に問題は発生しませんでした。11.0.7+10.2 で開発を進めます。

IntelliJ IDEA を 2019.3.4 → 2020.1.1 へバージョンアップする

IntelliJ IDEA の 2020.1.1 がリリースされているのでバージョンアップします。

※ksbysample-webapp-lending プロジェクトを開いた状態でバージョンアップしています。

  1. IntelliJ IDEA のメインメニューから「Help」-「Check for Updates...」を選択します。

  2. IDE and Plugin Updates」ダイアログが表示されます。左下に「Update and Restart」ボタンが表示されていますので、「Update and Restart」ボタンをクリックします。

    f:id:ksby:20200502020425p:plain

  3. Plugin の update も表示されました。このまま「Update and Restart」ボタンをクリックします。

    f:id:ksby:20200502020519p:plain

  4. Patch がダウンロードされて IntelliJ IDEA が再起動します。

  5. IntelliJ IDEA が起動すると画面下部に「Indexing…」のメッセージが表示されますので、終了するまで待機します。

    f:id:ksby:20200502021636p:plain

  6. IntelliJ IDEA のメインメニューから「Help」-「About」を選択し、2020.1.1 へバージョンアップされていることを確認します。

  7. Gradle Tool Window の左上にある「Refresh all Gradle projects」ボタンをクリックして更新します。

  8. clean タスク実行 → Rebuild Project 実行 → build タスクを実行して、"BUILD SUCCESSFUL" のメッセージが出力されることを確認します。

    f:id:ksby:20200502022534p:plain

  9. Project Tool Window で src/test でコンテキストメニューを表示して「Run 'All Tests' with Coverage」を選択し、テストが全て成功することを確認します。。。が、@SpringBootTest アノテーションを付与しているテストが失敗しました。

    f:id:ksby:20200502025130p:plain

    エラーメッセージは以下のものが出力されています。

    • java.lang.IllegalStateException: Failed to load ApplicationContext
    • Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'flywayInitializer' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Invocation of init method failed; nested exception is java.lang.AbstractMethodError: Receiver class org.postgresql.jdbc3.Jdbc3Connection does not define or inherit an implementation of the resolved method 'abstract boolean isValid(int)' of interface java.sql.Connection.
    • Caused by: java.lang.AbstractMethodError: Receiver class org.postgresql.jdbc3.Jdbc3Connection does not define or inherit an implementation of the resolved method 'abstract boolean isValid(int)' of interface java.sql.Connection.

    今ひとつ原因が分からなかったので、メインメニューから「File」-「Invalidate Caches / Restart ...」を選択して「Invalidate Caches」ダイアログを表示し「Invalidate and Restart」ボタンを押してみましたが全く状況は変わらず。。。

    Web で検索してみたところ java.lang.AbstractMethodError: org.postgresql.jdbc3.Jdbc3Connection.isValid(I)Z を見つけました。これによると org.postgresql.jdbc3.Jdbc3Connection が classpath に含まれているのが原因らしい。

    Shiftキーを2回押して検索してみると確かにクラスが存在します。

    f:id:ksby:20200502103810p:plain

    モジュールを調べると postgresql:postgresql:8.4-701.jdbc3 の中にあり、

    f:id:ksby:20200502103915p:plain

    このモジュールを依存関係に含んでいるモジュールを gradlew dependencies コマンドで調べたところ org.dbunit:dbunit:2.6.0 が原因でした。

    f:id:ksby:20200502104545p:plain

    build.gradle で testImplementation("org.dbunit:dbunit:2.6.0")testImplementation("org.dbunit:dbunit:2.6.0") { exclude group: "postgresql", module: "postgresql" } に変更して postgresql:postgresql:8.4-701.jdbc3 が除外されるようにします。

    f:id:ksby:20200502104840p:plain

    Gradle Tool Window の左上にある「Refresh all Gradle projects」ボタンをクリックして更新から、Project Tool Window で src/test でコンテキストメニューを表示して「Run 'All Tests' with Coverage」を選択するとテストが全て成功することを確認できました。

    f:id:ksby:20200502105554p:plain

  10. 最後にメジャーバージョンアップなので以前のバージョンの C:\Users\root.IntelliJIdea2019.3 を削除します。が、今回は .IntelliJIdea2020.1 というフォルダが作成されていません。

    検索してみたところ C:\Users\root\AppData\Local\JetBrains\IntelliJIdea2020.1 に作成されていました。こんな見えないところにフォルダを作って、今度メジャーバージョンアップした時には自動で旧バージョンのフォルダを削除してくれるのかが心配です(2~3GB 使用するフォルダなのでメジャーバージョンアップ時は削除したい)

    ディレクトリの説明を見つけたのでメモ書きしておきます。 IntelliJ IDEA 2020.1 - Default IDE directories
    https://www.jetbrains.com/help/idea/2020.1/tuning-the-ide.html#default-dirs

Git for Windows を 2.26.0 → 2.26.2 へバージョンアップする

Git for Windows の 2.26.2 がリリースされていたのでバージョンアップします。

  1. https://gitforwindows.org/ の「Download」ボタンをクリックして Git-2.26.2-64-bit.exe をダウンロードします。

  2. Git-2.26.2-64-bit.exe を実行します。

  3. 「Git 2.26.2 Setup」ダイアログが表示されます。インストーラーの画面を一通り見たいので「Only show new options」のチェックを外してから [Next >] ボタンをクリックします。

  4. 「Select Components」画面が表示されます。「Git LFS(Large File Support)」だけチェックした状態で [Next >]ボタンをクリックします。

  5. 「Choosing the default editor used by Git」画面が表示されます。「Use Vim (the ubiquitous text editor) as Git's default editor」が選択された状態で [Next >]ボタンをクリックします。

  6. 「Adjusting your PATH environment」画面が表示されます。中央の「Git from the command line and also from 3rd-party software」が選択されていることを確認後、[Next >]ボタンをクリックします。

  7. 「Choosing HTTPS transport backend」画面が表示されます。「Use the OpenSSL library」が選択されていることを確認後、[Next >]ボタンをクリックします。

  8. 「Configuring the line ending conversions」画面が表示されます。一番上の「Checkout Windows-style, commit Unix-style line endings」が選択されていることを確認した後、[Next >]ボタンをクリックします。

  9. 「Configuring the terminal emulator to use with Git Bash」画面が表示されます。「Use Windows'default console window」が選択されていることを確認した後、[Next >]ボタンをクリックします。

  10. 「Configuring extra options」画面が表示されます。「Enable file system caching」だけがチェックされていることを確認した後、[Install]ボタンをクリックします。

  11. インストールが完了すると「Completing the Git Setup Wizard」のメッセージが表示された画面が表示されます。中央の「View Release Notes」のチェックを外した後、[Next >]ボタンをクリックしてインストーラーを終了します。

  12. コマンドプロンプトを起動して git --version を実行し、git のバージョンが git version 2.26.2.windows.1 になっていることを確認します。

    f:id:ksby:20200502114906p:plain

  13. 特に問題はないようですので、2.26.2 で作業を進めたいと思います。