どういう問題か
Scalaのプロジェクト管理には多くの場合、sbtが使われているのではないかと思う。
その場合、サードパーティのライブラリを使用するにはbuild.sbt
内でdependencies
内に依存ライブラリを追加するのだが、追加した後もダウンロードをなかなか開始してくれず、一度ライブラリを消してもそれはなかなか解消されなかった。
またダウンロードできた後もIntelliJでそのライブラリが使用できない(ように見える)問題でハマったので備忘録として記録する。
原因
問題はそれぞれで異なる。
1. build.sbt
編集後もなかなかダウンロードされない問題
IntelliJでの自動importが無効になっていた。
2. ローカルのライブラリを消してもなかなかダウンロードされない問題
ivy内にcacheが残っていた。
3. IntelliJでライブラリが使用できない(ようにみえる)問題
後から追加したものに関しては手動でライブラリを追加する必要があった。
解決方法
それぞれ具体的には以下方法で解決することができる。
1. build.sbt
編集後もなかなかダウンロードされない問題
これに関してはそもそも自動importに頼らずともsbtプロジェクト内でsbt compile
を実行すればおそらく解決する。
ただし、IntelliJのsbtしかない場合はパスとかおそらく通っていないはず(試してはいない)なので、以下の場所で自動importをONにしておくと今後楽だろう。
2. ローカルのライブラリを消してもなかなかダウンロードされない問題
これについては以下の記事でその理由を細かく説明されているので省略するが、結論:~/.ivy2/cache/*
を削除しないとリモートからライブラリの実態をインストールしてくれないようだ。
3. IntelliJでライブラリが使用できない(ようにみえる)問題
これはそのままだが、手動でライブラリを該当のモジュールに追加して上げる必要がある。
ここで小ネタとして、パスを指定する際に~/.ivy2/
を指定する必要があるが隠しフォルダが一見選択できない。これはファイル選択ダイアログ中にcmd + shift + G
でフォルダ移動ができるので、ここで隠しフォルダにも移動ができる。