https://github.com/seancorfield/dot-clojure.git
git clone 'https://github.com/seancorfield/dot-clojure.git'
(ql:quickload :seancorfield.dot-clojure)
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 both test
and src/test/clojure
to your classpath and pulls in the latest stable version of test.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 your src
and test
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 example load-master
function in the comments in my deps.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 a pom.xml
(created via clj -Spom
), this can be deployed to Clojars etc (via mvn 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