java - 什么 "require"语句使用 Clojars 的 Java 库

标签 java clojure clojars

大多数 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/

相关文章:

java - LibGDX SpriteBatch渲染错误

clojure - 使用 Hiccup 和 Compojure 编写模板

clojure carmine redis 连接错误

clojure - 如何将 Leiningen 模板部署到 Clojars?

java - IntelliJ 在行 > 65536 上安装断点是不可能的

java - 在 Java 中从字符串列表中查找每个短语出现次数的最佳方法

java - Retrofit 2 编码中的特殊字符问题

clojure - 如何停止 Clojure 中的特定代理?他们的州什么时候收集垃圾?

hadoop - Lein 在 Clojars 和依赖项上的部署

clojure - Leiningen 提出了 "Tried to use insecure HTTP repository without TLS."但对于哪个依赖项?