You can create tar/jar/war files, deploy artifacts to remote mvn repositories, push to the Google App Engine or Elastic Beanstalk, etc. Deployment to generic unix servers is handled by Pallet, which integrates well with Leiningen: https://github.com/pallet/pallet-lein
> Does it let different applications share libraries when possible?
This goes strongly against the culture of the JVM for various reasons that are outside the scope of Clojure itself.
> Can you push a security fix for a library to servers in the field without completely rebuilding and redeploying every application that uses the library.
Sure, this is pretty easy to do with Swank, but the specifics are going to vary widely based on the type of deployment.
Out-of-the-box it's a development tool, but it has plugins for certain types of deployment: https://github.com/technomancy/leiningen/wiki/Plugins
You can create tar/jar/war files, deploy artifacts to remote mvn repositories, push to the Google App Engine or Elastic Beanstalk, etc. Deployment to generic unix servers is handled by Pallet, which integrates well with Leiningen: https://github.com/pallet/pallet-lein
> Does it let different applications share libraries when possible?
This goes strongly against the culture of the JVM for various reasons that are outside the scope of Clojure itself.
> Can you push a security fix for a library to servers in the field without completely rebuilding and redeploying every application that uses the library.
Sure, this is pretty easy to do with Swank, but the specifics are going to vary widely based on the type of deployment.