0
votes

once i added one more namespace in my (toy) project one exception is raised after starting the server:

lein run

I am copying below my project.clj file.

(defproject compoj02 "0.1.0-SNAPSHOT"
 :description "FIXME: write description"
 :url "http://example.com/FIXME"
 :license {:name "Eclipse Public License"
 :url "http://www.eclipse.org/legal/epl-v10.html"}
 :dependencies [[org.clojure/clojure "1.6.0"]
             [ring "1.3.1"]
             [compojure "1.2.1"]
             [clout "2.0.0"]
             [enlive "1.1.5"]
             [org.clojure/data.csv "0.1.2"]
             ;[org.clojure/data.csv]
            ]
 :main         compoj02.core)

The error is

   Exception in thread "main" java.io.FileNotFoundException: Could not locate clojure/data/csv__init.class or clojure/data/csv.clj on classpath: , compiling:(compoj02/pompaq.clj:1:1)
    at clojure.lang.Compiler.load(Compiler.java:7142)

The new namespace contains one simple function:

 (ns compoj02.pompaq
   (:require [clojure.data.csv :as csv]
             [clojure.data.io :as iov]))

 (defn process-csv [file]
    (with-open [in-file (iov/reader file)]
      (doall
         (csv/read-csv in-file))))

thanks for reading!

PS. I am adding few details.I executed the command lein deps. Also, there is a chain of files: core.clj uses a reference to templates.clj and this one uses a reference to the pompaq.clj. When I comment out the declaration (:use compoj02.pompaq) used in the namespace of templates.clj, I am able to start the application via lein run.

1

1 Answers

0
votes

Try lein deps to make sure everything is there. Also, without a -main function, your command should be =>

lein run -m compoj02.pompaq/process-csv file-arg-here