[clojure] lein-ancientで依存ライブラリのバージョンチェック[plugin]

2013.07.30

依存ライブラリのバージョンをチェック

Clojureプロジェクトのビルドツール、leiningenでは依存ライブラリをproject.cljで管理しますが、
しばらく開発を続けているうちに、ライブラリの新しいバージョンがいつのまにかリリースされていることがあります。
通常であれば自分でリリース情報を確認して更新しなければなりませんが、lein-ancientプラグインを使用すれば、
依存ライブラリのバージョンを自動で確認し、更新も行うことができます。

環境構築方法

今回使用した動作環境は以下のとおりです。

  • OS : MacOS X 10.7.5
  • leiningen : 2.2

leinコマンドが使える状態にしておいてください。

lein-ancientの動作確認

1.lein-ancientをインストール

まずはlein-ancientプラグインをインストールします。leiningenの設定ファイル、
~/.lein/profiles.cljを開き(なければ作成)、下記内容を記述します。

{:user {
	:plugins [
		[lein-ancient "0.4.3"]
	]
}}

すでに他にプラグインを追加している人は、lein-ancientを追記すればOKです。

2.leiningenでプロジェクトを作成

leiningenでサンプルプロジェクトを作成しましょう。

% lein new ancientSample

lein-ancientを試すため、project.cljにcompojureを追加します。最新版より少し古いバージョンを記述します。

(defproject mcljsample "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.5.1"]
                 [compojure "1.1.3"]])

3.ancientを使って依存ライブラリの確認&更新

ancientコマンドで依存ライブラリの確認をしてみましょう。
現在の最新バージョンは1.1.5なので、ancientコマンドを実行すると最新バージョンを教えてくれます。
※ちなみに、:allow-snapshotsオプションを使用すると、SNAPSHOTバージョンも対象に含めることができます。

% lein ancient                                                                                                                                    [compojure "1.1.5"] is available but we use "1.1.3"

最新バージョンのancientでは、最新バージョンへアップグレードすることもできます。
下記のように:upgradeオプションを使って実行してみましょう。

% lein ancient :upgrade                                                                                                Upgrade to [compojure "1.1.5"] from "1.1.3"

実行後、project.cljを見ると依存ライブラリのバージョンも更新されています。
なお、アップグレード時に:interactiveオプションも使用すると、アップグレードするかどうか個別に確認されます。

参考サイトなど