ライブラリ管理に使っているmavenのバージョンがアプリごとに異なる場合のMac上での切り替え方法です。
前提
- Mac
- mavenのパッケージ管理をHomebrewで行っている
- maven3(またはmaven2)だけがインストール済で、後から追加したい
やり方
maven2を追加する
※ maven2とmaven31を読み替えても基本的には同じ
maven3のシンボリックリンクを無効にする。
brew unlink maven31
maven2をインストールする。
brew install maven2
確認。
$ mvn -v
Apache Maven 2.2.1 (r801777; 2009-08-07 04:16:01+0900)
Java version: 1.8.0_20
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home/jre
Default locale: ja_JP, platform encoding: UTF-8
OS name: "mac os x" version: "10.9.5" arch: "x86_64" Family: "mac"
mavenのバージョンを切り替える
Homebrewで異なるバージョンのMavenをインストール済みであること。
maven2 => maven3 に切り替える。(逆も同じ)
brew unlink maven2
brew link maven3
確認。
$ mvn -v
Apache Maven 3.1.1 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-18 00:22:22+0900)
Maven home: /usr/local/Cellar/maven31/3.1.1/libexec
Java version: 1.8.0_20, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home/jre
Default locale: ja_JP, platform encoding: UTF-8
OS name: "mac os x", version: "10.9.5", arch: "x86_64", family: "mac"
注意点
brew doctor
したときに以下の警告が出ます。そりゃそうだ。
Warning: You have unlinked kegs in your Cellar
Leaving kegs unlinked can lead to build-trouble and cause brews that depend on
those kegs to fail to run properly once built. Run `brew link` on these:
maven2
以上。