I was trying to do some simple scripting work with Clojure. For example, I would load a json which contains a map from a file, remove a given key, and save it back to the file. With leiningen, seems I would have to create an app, add data.json or whatever into the dependencies, then I could start a lein repl to do the real work. Think about doing the same thing with Python. It should be done with 3 lines of code in Python. Is there an easy way to do it with leiningen?
6
votes
You don't have to use lein, but t helps with setting up application structure. I've used lein for so long, I don't know how to hand compile Clojure and run it, but there are probably examples out there.
- octopusgrabbus
The jvm makes using clojure for things like this very inconvenient, because of the startup time (and ram usage if you work around the startup time with a pool of waiting jvms).
- noisesmith
You can run a single JVM instance using Nailgun (github.com/martylamb/nailgun), load Clojure to it, and serve requests in a client-server manner (over localhost).
- deprecated
2 Answers
12
votes
You can try out the lein-oneoff plugin which was made for situations like these (I'm the author). It lets you declare dependencies and write code in a single file, avoiding the need to generate a proper leiningen project.
7
votes
You can use lein-exec.
To add a bit more info, I wrote up some notes on standalone scripts with Clojure.