A Leiningen plugin to check your project for outdated dependencies and plugins, as well as upgrade them if desired.
This plugin supersedes lein-outdated and uses metadata XML files in the different Maven repositories instead of a Lucene-based search index. Version comparison is done using version-clj.
lein-ancient is destined for Leiningen >= 2.4.0.
Once lein-ancient
is installed, use Leiningen's built-in help feature to
see how to use it:
lein help ancient
lein help ancient <subtask>
lein-ancient
's default behaviour is to check your current project (or a given
file/directory) for artifacts that have newer versions available, e.g.:
$ lein ancient
[com.taoensso/timbre "2.6.2"] is available but we use "2.1.2"
[potemkin "0.3.3"] is available but we use "0.3.0"
[pandect "0.3.0"] is available but we use "0.2.3"
You can specify the type of versions to check with :allow-snapshots
,
:allow-qualified
and :allow-all
, and the kind of artifacts with :plugins
,
:java-agents
, and :all
:
$ lein ancient :allow-snapshots
[com.taoensso/timbre "2.6.2"] is available but we use "2.1.2"
[potemkin "0.3.4-SNAPSHOT"] is available but we use "0.3.0"
[pandect "0.3.0"] is available but we use "0.2.3"
[midje "1.6-SNAPSHOT"] is available but we use "1.5.1"
$ lein ancient :plugins
[lein-midje "3.1.2"] is available but we use "3.0.1"
$ lein ancient :java-agents
[com.newrelic.agent.java/newrelic-agent "3.43.0"] is available but we use "3.35.1"
It works recursively, too:
$ lein ancient :recursive
-- ./panoptic/project.clj
[com.taoensso/timbre "2.6.2"] is available but we use "2.1.2"
[potemkin "0.3.3"] is available but we use "0.3.0"
[pandect "0.3.0"] is available but we use "0.2.3"
-- ./rewrite-clj/project.clj
[org.clojure/tools.reader "0.7.8"] is available but we use "0.7.5"
[potemkin "0.3.3"] is available but we use "0.3.2"
To let lein-ancient
perform the same checks for the profiles in
~/.lein/profiles.clj
, run it using:
$ lein ancient check-profiles [<options>]
...