Вопрос по clojure, leiningen – Почему Java жалуется, что пространство имен не найдено?
Я пытаюсь настроить среду сборки lein в Windows 7, скопировав файлы из успешной среды сборки в Linux. У меня есть Maven и JDK установлены вместе с Lein.
HOME указывает наc:\Users\cnorton
где находятся каталоги maven.
Я получаю эту ошибку при попытке запустить lein repl или lein compile и не могу понять, что я делаю неправильно.
Вызывается: java.lang.Exception: пространство имен & quot; repl-test.core & apos; не найден после загрузки "/ repl_test / core";
Вот проект.
(defproject repl-test "0.0.1-SNAPSHOT"
:description "TODO: add summary of your project"
:dependencies [[org.clojure/clojure "1.4.0"]
[org.clojure/clojure-contrib "1.2.0"]
[clojure-csv/clojure-csv "1.2.4"]
[org.clojure/tools.cli "0.1.0"]
[clj-http "0.1.3"]]
:aot [repl-test.core]
:main repl-test.core)
Вот первая часть src / repl_test / core.clj
(ns repl-test.core
(:gen-class)
(:use clojure.contrib.command-line)
(:require [clojure.contrib.string :as cstr])
(:require [clojure.contrib.trace :as ctr])
(:require [clojure.string :as sstr])
(:use clojure-csv.core))
Я был бы очень полезен, если бы кто-то мог опубликовать в качестве ответа файл project.clj и заголовок core.clj, который позволяет проекту быть основным.
- & quot; в именах папок и пространствах имен они фактически преобразуются в & quot; _ & quot; но не во всех местах.
Следующее может или не может работать для вас. Я получил ваш скелетный проект, работающий с:
(defproject st1 "1.0.0-SNAPSHOT"
:description "TODO: add summary of your project"
:dependencies [[org.clojure/clojure "1.4.0"]
[org.clojure/clojure-contrib "1.2.0"]
[clojure-csv/clojure-csv "1.2.4"]
[org.clojure/tools.cli "0.1.0"]
[clj-http "0.1.3"]]
:aot [repl_test.core]
:main repl_test.core)
Тот же файл clj, что и у вас:
(ns repl_test.core
(:gen-class)
(:use clojure.contrib.command-line)
(:require [clojure.contrib.string :as cstr])
(:require [clojure.contrib.trace :as ctr])
(:require [clojure.string :as sstr])
(:use clojure-csv.core))
И я переименовал папкуrepl-test вrepl_test с подчеркиванием.
затем
lein compile
а также
lein run
Из любопытства я тоже посмотрел наClojure-CSVи они используют & quot; - & quot; везде, кроме имени папки, так что может повезет, скопировав то, что они сделали.
Кроме того, цитируяеще один вопрос на clojure пространствах имен:
& quot; Также обратите внимание, что вы не должны использовать подчеркивание в именах пространств имен или дефис в именах файлов, и где бы вы ни использовали дефис в имени пространства имен, вы должны использовать подчеркивание в имени файла (так, чтобы ns my.cool-project было определен в файле с именем cool_project.clj в каталоге с именем my). & quot;
И изClojure Программирование Wiki раздел о пакетах java: & quot; Clojure соблюдает соглашения об именах Java для каталогов и файлов, но соглашения об именах Lisp для имен пространств имен. Таким образом, пространство имен Clojure com.my-app.utils будет находиться по пути com / my_app / utils.clj. Обратите особое внимание на различие между подчеркиванием и дефисом. & Quot;
st1
где-то ссылаться?
octopusgrabbus