ref : http://stackoverflow.com/questions/6874338/standalone-clojure-app
To build a project that, when run, prints "Hello World!", you'd do as follows (revision of your process above):

Setup


lein new my-project
cd my-project
lein deps

You should now have a basic structure in place and the Clojure jar in your lib folder.

Write a Function

Now edit src/my_project/core.clj with your editor of choice, adding the following below the (ns ...) form:
[sourcecode language="clojure"]
(defn -main []
(println "Hello World!"))
[/sourcecode]
This function is inside your my-project.core namespace. To ensure this gets run as your main, let's add a gen-class parameter to your namespace definition at the top, so that it now looks like this at the top of core.clj:
[sourcecode language="clojure"]
(ns my-project.core
(:gen-class :main true))
So all together, your core.clj file looks like this:
(ns my-project.core
(:gen-class :main true))
(defn -main []
(println "Hello World!"))
[/sourcecode]

Configure it as the Main Function

Once you've got src/my_project/core.clj edited as above, you need to tell Leiningen (the build tool) where the "main" function for your project lives. Here's an example defproject form that does this:
[sourcecode language="clojure"]
(defproject my-project "1.0.0-SNAPSHOT"
:description "My Project"
:dependencies [[org.clojure/clojure "1.2.1"]]
:main my-project.core)
[/sourcecode]
Now the -main function inside my-project.core becomes the entry-point for your program.

Run It

You can now have two options for running this project:
Use lein run at the command-line while at the root of your my-project project
Create a standalone jar file by running lein uberjar. You can then run the resultant jar file by running
[code]
java -jar my-project-1.0.0-SNAPSHOT-standalone.jar[/code]