为什么我不能在我的 Clojure 文件中要求 Java 库?
Why can't I require a Java library in my Clojure file?
我让 leiningen 在公司的 Artifactory 存储库中找到了一个库,它似乎可以很好地下载它,但是当我打开尝试 require
它时,运行 lein run
的代码返回 FileNotFoundException
。
我的项目文件如下所示:
(defproject clj-test "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.8.0"]
[com.ourgroup/library "1.0.0"]]
:repositories [["releases" {:url "https://url-to-our-repo"
:username "username"
:password "password"}]]
:main ^:skip-aot clj-test.core
:target-path "target/%s"
:profiles {:uberjar {:aot :all}})
我的单个代码文件如下所示:
(ns clj-test.core
(:gen-class)
(:require [library :as lib]))
(defn -main
"I don't do a whole lot ... yet."
[& args]
(println "And now for something completely different..."))
您需要import
一个class。要获取 class 的名称,请查看 jar 内部(或 Java 源代码)并找到构成完全限定的 Java 包和 class class 您需要导入的名称。
我已经编辑了这个。我之前的错误已通过评论更正:"You require namespaces; you import classes. Requiring a class is no good"。因此,对于 Java 互操作,您需要导入 classes,就像您编写 Java 源文件一样。
我让 leiningen 在公司的 Artifactory 存储库中找到了一个库,它似乎可以很好地下载它,但是当我打开尝试 require
它时,运行 lein run
的代码返回 FileNotFoundException
。
我的项目文件如下所示:
(defproject clj-test "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.8.0"]
[com.ourgroup/library "1.0.0"]]
:repositories [["releases" {:url "https://url-to-our-repo"
:username "username"
:password "password"}]]
:main ^:skip-aot clj-test.core
:target-path "target/%s"
:profiles {:uberjar {:aot :all}})
我的单个代码文件如下所示:
(ns clj-test.core
(:gen-class)
(:require [library :as lib]))
(defn -main
"I don't do a whole lot ... yet."
[& args]
(println "And now for something completely different..."))
您需要import
一个class。要获取 class 的名称,请查看 jar 内部(或 Java 源代码)并找到构成完全限定的 Java 包和 class class 您需要导入的名称。
我已经编辑了这个。我之前的错误已通过评论更正:"You require namespaces; you import classes. Requiring a class is no good"。因此,对于 Java 互操作,您需要导入 classes,就像您编写 Java 源文件一样。