大多数 Clojure 库不仅提供有关将哪些内容放入 project.clj
文件中的信息,还提供有关如何在源文件中require
该库的信息。例如,https://github.com/clojure/data.json提供用法部分:
(ns example
(:require [clojure.data.json :as json]))
我想使用 Clojars 库(它是一个 Java 库),它在 Clojars 上列出:https://clojars.org/zololabs/jericho-html-parser 。我已成功将依赖项添加到我的 project.clj
文件中,但我不知道如何require
它。
我尝试过 (require '[zololabs.jericho-html-parser])
和许多变体,但似乎都不起作用。我查看了我知道如何要求的库的命名约定,看看我是否可以辨别模式,但我没有成功。
是否有一种简单的方法可以根据文件名、Leiningen 坐标或其他信息来判断如何需要
该库?
最佳答案
首先,您不需要 需要
Clojure 的 Java 库,您可以导入
一个或多个 Java 类。例如:
(:import [net.htmlparser.jericho Source TextExtractor])
然后您可以通过 Java 互操作来使用这些类。例如
(Source. (java.net.URL. "https://yahoo.com"))
请注意,您无需导入类路径中已有的 Java 类即可使用它们。如果您打算使用它们一次或两次,您可以避免导入,只需通过它们的完全限定名称来引用它们:
(net.htmlparser.jericho.Source. (java.net.URL. "https://www.yahoo.com"))
显然,您需要首先查找 Java 库 API 并了解其工作原理。在这种特殊情况下,请参阅 here .
关于java - 什么 "require"语句使用 Clojars 的 Java 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32279991/