Я тоже начал с использования load-file
. Согласно документации Clojure для библиотек ,
Clojure определяет соглашения для именования и структурирования библиотек:
* Имя lib - это символ, который обычно содержит две или более частей, разделенных точками.
* Контейнер библиотеки - это ресурс Java, путь относительно класса которого получен из имени библиотеки:
о путь является строкой
o Точки в имени библиотеки заменяются косыми чертами в пути
o Дефисы в имени библиотеки заменяются подчеркиванием в пути.
o Путь заканчивается на ".clj"
* Библиотека начинается с формы "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 для вашего проекта - это поможет упростить все эти папки. Чтобы «включить» библиотеку, вы будете использовать require, например:
(require 'clojure.contrib.def 'clojure.contrib.except 'clojure.contrib.sql)
(require '(clojure.contrib def except sql))
Пока документация верна и ваш проект относится к classpath, все должно с удовольствием загружаться. Надеюсь это ответит на твой вопрос. : D