Reputation: 1352
Getting ClassNotFoundException when i use a class from second order dependency. when i run lein uberjar or install it fails with
java.lang.ClassNotFoundException: incanter.core.Dataset, compiling:(myproject/routes/evaluate.clj:1:1).
However, it gets compiled.
Exception in thread "main" java.lang.ClassNotFoundException: incanter.core.Dataset, compiling:(myproject/routes/evaluate.clj:1:1)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6730)
at clojure.lang.Compiler.analyze(Compiler.java:6524)
at clojure.lang.Compiler.analyze(Compiler.java:6485)
at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5861)
at clojure.lang.Compiler$TryExpr$Parser.parse(Compiler.java:2261)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6723)
at clojure.lang.Compiler.analyze(Compiler.java:6524)
My project.clj file (selected part)
(defproject myproject"0.2.2-SNAPSHOT"
:dependencies [[org.clojure/clojure "1.7.0"]
[grafter "0.7.0"]]
)
The incanter.core.Dataset is used by grafter:0.7.0.
My clojure file where i use it is myproject/routes/evaluate.clj
(ns myproject.routes.evaluate
(:gen-class
:name myproject.routes.evaluate
:prefix "service-"
:methods [^:static [executePipeline [java.lang.String java.lang.String java.lang.String] incanter.core.Dataset]]))
(defn service-executePipeline [data command pipeline]
(execute-pipeline data command pipeline))
I have went through few posts relate to gen-class
and aot
solutions. Nothing was useful.
I am quiet new to Clojure. I am not completely sure what's happening.
Can i solve this issue? What am i doing wrong?
Upvotes: 3
Views: 361