A leiningen project.clj to Clojure CLI deps.edn converter.
With babashka:
bb -Sdeps '{:deps {io.github.borkdude/lein2deps {:git/sha "..."}}}' \
-m lein2deps.api --print --write-file deps.ednWith bbin:
bbin install https://raw.githubusercontent.com/borkdude/tools/main/lein2deps.clj lein2deps --print --write-file deps.edn
With Clojure:
clj -Sdeps '{:deps {io.github.borkdude/lein2deps {:git/sha "..."}}}' \
-M -m lein2deps.api --print --write-file deps.ednWith Clojure CLI Tools:
clojure -Ttools install-latest :lib io.github.borkdude/lein2deps :as lein2deps clojure -Tlein2deps lein2deps :print true :write-file "deps.edn"
This tool respects :java-source-paths in project.clj and adds a :deps/prep-lib
entry to your deps.edn so users of your project will have to execute:
clj -X:deps prep
to compile Java sources before being able to use your project.
For some reason this doesn't work from inside the project. To compile Java locally:
clojure -X:lein2deps compile-java
You can use the leiningen plugin to automatically synchronize your project.clj to a deps.edn.
Add:
:plugins [[io.github.borkdude/lein-lein2deps "0.1.0"]]to your project.clj and then run:
lein lein2deps --write-file deps.edn --print falseTo run the plugin on any invocation of lein, add it to :prep-tasks:
(defproject my-project "0.1.0" :plugins [[io.github.borkdude/lein-lein2deps "0.1.0"]] :dependencies [[org.clojure/clojure "1.11.1"]] :prep-tasks [["lein2deps" "--write-file" "deps.edn" "--print" "false"]])
Check out neil for easily adding a test runner to deps.edn.
If you are new to deps.edn, check out this blog article on how to get started quickly.
Copyright (c) 2022 Michiel Borkent.
Licensed under MIT, see LICENSE