This is my .clojure/deps.edn
file providing useful clj
aliases drawn from a variety of projects.
There are aliases to pull in specific versions of Clojure:
:master
-- Clojure 1.11.0-master-SNAPSHOT:1.10
-- Clojure 1.10:1.9
-- Clojure 1.9.0- ... back to
:1.2
There are aliases to pull in various useful testing and debugging tools:
:test
-- adds bothtest
andsrc/test/clojure
to your classpath and pulls in the latest stable version oftest.check
:runner
-- pulls in Cognitect Labs'test-runner
project and runs any tests it can find:eastwood
-- pulls in the latest stable release of Eastwood on yoursrc
andtest
folders; use with:test
above:expect
-- pulls in the latest stable release of Expectations:bench
-- pulls in the latest stable release of Criterium for benchmarking your code:measure
-- pulls in the latest stable release of Memory Meter:outdated
-- pulls in and runs the latest stable release of Depot and reports on outdated dependencies
There are aliases to pull in and start various REPL-related tools:
:nrepl
-- pulls in the latest stable release of nREPL and starts an nREPL server on a random available port:nrepl/old
-- pulls in the latest stable release of org.clojure/tools.nrepl and starts an nREPL server on port 60606; this is provided to support legacy tooling:socket
-- starts a Socket REPL on port 50505; can be combined with other aliases since this is just a JVM option:prepl
-- starts a Socket pREPL on port 40404; can be combined with other aliases since this is just a JVM option; requires a recent Clojure 1.10 build!:proto
-- adds the latest stable release of the protorepl library for Atom/ProtoREPL usage (with:nrepl
or:nrepl/old
):rebel
-- starts a Rebel Readline REPL:reflect
-- adds Stuart Halloway's reflector utility (best used with REBL):rebl-8
-- starts Cognitect's REBL (if you have it installed); compatible with OracleJDK 8 (which includes JavaFX):rebl-11
-- starts Cognitect's REBL (if you have it installed); compatible with OpenJDK 11:comp
-- adds the latest stable release of compliment; useful with a Socket REPL for Unravel or Chlorine for Atom
An alias for the Liquid Clojure editor:
:liquid
-- pulls in and runs the latest stable release of Liquid
For the add-lib
function (clojure.tools.deps.alpha.repl/add-lib
):
:deps
-- pulls in a branch of org.clojure/tools.deps.alpha; see the exampleload-master
function in the comments in mydeps.edn
An alias to pull in my template creation tool:
:new
-- pulls in and runs the latest stable release of clj-new to create new projects from (Leiningen and other) templates
An alias to build uberjar files:
:uberjar
-- pulls in and runs the latest stable release of my fork of depstar to create an uberjar;clj -A:uberjar MyProject.jar
;java -cp MyProject.jar clojure.main -m project.core
:jar
-- pulls in and runs the latest stable release of my fork of depstar to create a "thin" JAR;clj -A:jar MyProject.jar
; along with apom.xml
(created viaclj -Spom
), this can be deployed to Clojars etc (viamvn deploy:deploy-file ...
)
And finally, a gnarly little macro, inspired by Ruby's -pne
command line option
that lets you process lines of standard input:
:pne
--cat file-of-numbers.txt | clj -Mpne -e '($ (-> $_ Long/parseLong inc))'
;$
reads stdin and evaluates the expression repeatedly with$_
bound to each line, printing the results to stdout