mathieuravaux / dot-clojure

My .clojure/deps.edn file

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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):

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

About

My .clojure/deps.edn file