エキサイト株式会社メディア事業部エンジニアの佐々木です。
メディア事業部では、最近JVMを利用した開発が増えてきており、プロジェクトやリポジトリごとにバージョンが変わったりが起きています。これをなるべく自動で切り替える方法をご紹介します。
前提
メディア事業部では、SDKMANを使用して、Javaをインストールしております。Windows/Mac/Linuxで統一したコマンドを使用できるので管理が楽です。
設定ファイルの作成
設定ファイルを作成します。
$ sdk env init
コマンドを実行すると、下記ファイルが出来上がります。
# Enable auto-env through the sdkman_auto_env config # Add key=value pairs of SDKs to use below java=17.0.2-tem
sdkman_auto_env
というパラメータを有効にすると、ディレクトリ遷移時に自動的に切り替わります。下記コマンド実行すると書き換わります。
$ sed -i -e 's/sdkman_auto_env=false/sdkman_auto_env=true/g' ~/.sdkman/etc/config
切替の確認
ディレクトリを移動すると、下記のようなメッセージがでます。
Using java version 17.0.2-tem in this shell.
正常に切り替わりました。
マシンインストールされていないJVMバージョンが指定されている場合
マシンにないJVMが指定されている場合は、インストールを促すようになります。
インストールされていないJVMバージョンを.sdkmanrc
に記載します。
# Enable auto-env through the sdkman_auto_env config # Add key=value pairs of SDKs to use below java=18.0.1-amzn
記載後に、ディレクトリを移動すると下記のように警告をだしてくれます。
Stop! Candidate version is not installed. Tip: Run the following to install this version $ sdk install java 18.0.1-amzn
警告をだしてくれたので、インストールします。警告にあるコマンドを叩いてもいいんですが、コピペが面倒なので、.sdkmanrc
に指定されているものをインストールするショートカットコマンドを実行します。
$ sdk env install Downloading: java 18.0.1-amzn In progress... ######################################################################## 100.0% Repackaging Java 18.0.1-amzn... Done repackaging... Cleaning up residual files... Installing: java 18.0.1-amzn Done installing! Using java version 18.0.1-amzn in this shell.
こんな感じでインストールが完了します。
まとめ
プロジェクトが多くなってくると環境問題がでてくるかとおもいます。Dockerを使うのも手ですが、こういった切替がほぼ自動でできるのは便利かと思います。
最後に
エキサイトではフロントエンジニア、バックエンドエンジニア、アプリエンジニアを随時募集しております。長期インターンも歓迎していますので、興味があれば連絡いただければと思います。
カジュアル面談はこちらになります! meety.net
就業型インターンの募集もしております!
募集職種一覧はこちらになります!(カジュアルからもOK) www.wantedly.com