Как скомпилировать модули clojure, которые не находятся под "src" в проекте lein
Я создал свой проект, используя lein new app hello, поэтому у меня есть эта структура
.
└── src
└── hello
└── core.clj
└── project.clj
└── test
└── ..
Я хочу добавить еще один вспомогательный модуль в мой проект, чтобы я мог использовать код как в тестах, так и в модулях src так, как я хотел, чтобы он был отделен от каталога src.
Поэтому я добавил модуль помощников
.
└── src
└── hello
└── core.clj
└── project.clj
└── test
└── helpers
└──hello
└── helpers.clj
Как я могу изменить свой файл project.clj, чтобы сделать lein run
компиляции. lein run
не компилируется и выдает следующую ошибку, когда я пытаюсь запросить пространство имен помощников.
Исключение в потоке "main" java.lang.ClassNotFoundException: hello.helpers, компилирование:(hello/core.clj:7:3)
Мой файл 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"}
:dependencies [[org.clojure/clojure "1.8.0"]]
:main ^:skip-aot hello.core
:target-path "target/%s"
:profiles {:uberjar {:aot :all}})
Однако в IDE(IntelliJ) он отлично работает в REPL, без исключения класса не найден.
1 ответ
Добавлять
:source-paths ["src" "helpers"]
на ваш project.clj
файл.