Ответ 1
Я тоже начал с помощью load-file
. Согласно Clojure документации по libs,
Clojure определяет соглашения для именования и структурирования библиотек:
* Имя библиотеки - это символ, который обычно содержит две или более части, разделенные периодами.
* контейнер lib - это ресурс Java, чей путь относительного пути относитс к имени lib:
o Путь - это строка
o Периоды в имени lib заменяются слэшами в пути
o Hyphens в имени lib заменяются символами подчеркивания в пути
o Путь заканчивается на .clj
*; lib начинается с формы" ns ", которая
o создает пространство имен Clojure, которое разделяет его имя, и
o объявляет свои зависимости от классов Java, Clojure основных средств и/или других библиотек
Документация Clojure также содержит следующий пример объявления пространства имен (который, я уверен, вы уже знаете, но я предоставляю его здесь для полноты):
(ns com.my-company.clojure.examples.my-utils
(:import java.util.Date)
(:use [clojure.contrib.def :only (defvar-)])
(:require [clojure.contrib.shell-out :as shell]))
Итак, я бы хотел использовать libs для вашего проекта - это упростит все эти папки. Чтобы "включить" lib, вы будете использовать require, например:
(require 'clojure.contrib.def 'clojure.contrib.except 'clojure.contrib.sql)
(require '(clojure.contrib def except sql))
До тех пор, пока документация верна и ваш проект относителен к классу, все должно радостно загружаться. Надеюсь это ответит на твой вопрос.: D