lein-repack

Repack your project for deployment and distribution
<https://github.com/zcaudate/lein-repack#motivation>Motivation

lein-repack was written to solve a problem I had with utilities and general 
purpose libraries. In my experience, clojure libraries are much better when 
they are distributed in small packages. However, functionality is much 
easier to develop when the project is big: when we try to build our general 
purpose libaries in small packages, they become a nightmare to test and 
deploy.

lein-repack redistributes your code base into managable, deployable chunks 
and analyses your source files to automatically resolve internal and 
external dependencies. It this way, a big clojure project can now be broken 
up into sub-packages for deployment and redistribution.

The plugin will:

   - Create sub-projects for all sub-namespaces in a project
   - Will look through source files and figure out project dependencies
   - Will repackage a project into many smaller artifacts for easier 
   deployment and distribution


--------------------------
Walkthrough

For example, if there were a project called lama at version 0.1.0 and the 
files were organised like this:

- src
   - lama
       - weapons
          - gun.clj
       - food
          - prepare.clj
       - food.clj
       - core.clj

Running lein repack install will split the project into four jars and 
install them in maven.

lama-0.1.0.jar
lama-core-0.1.0.jar
lama-food-0.1.0.jar
lama-weapons-0.1.0.jar

Running lein repack deploy will deploy all four artifacts to clojars.

Once the artifacts are installed/deployed, they are now ready to be used. 
For example, if only the functionality for lama.weapons were required for 
another project, it can be imported individually in the project by adding 
[lama.weapons 
"0.1.0"] to project dependencies. The entire project can be imported my 
adding [lama "0.1.0"] to project dependencies.

---------

More on the github page - https://github.com/zcaudate/lein-repack

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to