无法在 luminus 项目中找到 clojure/data/xml__init.class

Could not locate clojure/data/xml__init.class in a luminus project

在我的 luminus 项目中,我添加了这个:

[org.clojure/data.zip "0.1.2"]

到依赖项列表,但这仍然会引发异常:

(ns myapp.rss
  (:use [clojure.data.xml :as xml :only [emit]]))

即:

Could not locate clojure/data/xml__init.class or clojure/data/xml.clj on classpath

这里有一个可以比较的工作示例:

project.clj:

(defproject hello "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"}
  :main hello.core
  :dependencies [[org.clojure/clojure "1.7.0"]                 
                 [org.clojure/data.xml "0.0.8"]
                 [org.clojure/data.zip "0.1.2"]
                 [clj-http "2.2.0"]])

来自core.clj:

(ns hello.core
  (:require [clj-http.client :as http-client]
            [clojure.zip :as zip]
            [clojure.xml :as xml]
            [clojure.data.xml :as xml-data :refer [emit]]
            [clojure.data.zip.xml :as xml-z]))

(use ... :only) 已被 require :refer 模式弃用。

这里有一些常见的检查事项:

  • 自从将它们添加到 project.clj 文件后,您实际上已经获取了依赖项

  • 从命令行尝试 运行ning lein deps 以确保获取依赖项有效

  • 重启 cider(如果在 emacs 中)
  • 尝试从 lein repl
  • 如果 none 这个作品在 ~/.m2/repository 中查看并确保 class 文件在那里
  • 运行 ps -ef(如果在 linux 中)查看用于启动 java 的命令并确保 classpath 包含你的依赖。