intellij IDEA使用Windows憑證安裝套件、下載專案相關套件

前言

在較複雜的企業網路,通常會有一層代理轉介
常常讓專案的套件下載的非常不順利
詢問防火牆的管理人員,都跟你說沒有檔
但套件就是抓不下來!
最麻煩的是,intellij不會跟你說發生了什麼事
出現的錯誤訊息只會顯示在maven無法找到套件

但該套件明明就確實存在!而且在單純網路裡一切都能正常下載、執行專案

將intellij提示的錯誤訊息丟去Google,基本上永遠都找不到答案…
因為錯誤訊息跟實際問題點完全對應不上 = =

主因是缺少了憑證導致無法順利下載

而intellij什麼都做的很好
關於憑證這塊唯一UI設定只有accept non-trusted certificates automatically
不然就是要自己手動匯入…
大部份情況下勾選後,應該幾乎都能解

從參考資料的官方issue可以發現其實早在2018年就有人提出這問題了
但到了2021仍不見此功能,而官方似乎也不太想處理的樣子

打開IE看其企業憑證,可能不只一個,滿滿的一堆也不知哪些才是真正需要的…

最好的作法就是讓IDE直接去OS層抓憑證!
但intellij的settings並沒有這種設定

只能透過手動增加JDK參數使其生效

作法

  1. 打開專案後,點開右側的gradle頁籤 -> Tasks -> build -> build
  2. 打開BUILD,點右鍵 > Modify Run Configuration
  3. Arguments貼上下列參數,存檔 (直接複製貼上就好,在intellij欄位裡會自動縮成一行)
  4. refreash gradle,順利下載套件!
-Djavax.net.ssl.trustStore=cacerts
-Djavax.net.ssl.trustStorePassword=changeit
-Djavax.net.ssl.trustStore=NUL
-Djavax.net.ssl.trustStoreType=Windows-ROOT

intellij-cert

參考資料

intellij 官方issue / Add UI for managing client certificates in settings
intellij 官方issue / Problem using windows certificate store (trustStoreType=Windows-ROOT not recognized)