Clojure Project Management
Extensible with any global command.
cljpm <arbitrary command>
I can include arbitrary.clj
in right places and it will be called.
The project.clj
file is mostly compatible with leiningen. However, the idea
is that it is only supposed to provide information to other tasks, much like
package.json
of npm, and not to define tasks and etc.
Like bundler’s approach, dependencies is cleaner to be separated and speciallt treated.
Dependenies along their asociated environment (dev,test,prod,…) and their source (maven,github,…)
is better to be defined in another file dependencies.clj
and also will create a .lock
after installing.
new
It is likelein new
to create a new project.init
It is likenpm init
to create a default standardproject.clj
.install
To download dependencies and create a.lock
file.run
It is likenpm run-script
to provide a shortcut for simple tasks.
- It must be easy to define different repositories for packages, like maven, npm, github, etc.
- Dependencies must be cached in a global place, but installed to project for easy access.
- Easy way for passing configs like rake envs.
- Standard environment treatment for
dev/test/prod/...
for customizing dependencies, config, etc.