Самый простой способ справиться с настройкой вашего пути компиляции в Clojure - это использовать инструмент сборки, такой как Leiningen или Cake , для управления вашим проектом.Используя эти инструменты, вы получаете идиоматическую структуру проекта, весь ваш исходный код автоматически по пути компиляции / класса и хорошие инструменты командной строки для обработки поиска зависимостей, выполнения модульных тестов и построения ваших проектов.
Вотнекоторые из основных задач командной строки, определенные Leiningen и доступные для вас в любом проекте:
classpath Show the classpath of the current project.
clean Remove compiled artifacts and jars from project.
compile Compile Clojure source into .class files.
deps Download all dependencies and place them in the :library-path.
help Display a list of tasks or help for a given task.
install Install the current project or download the project specified.
interactive Enter interactive shell for calling tasks without relaunching JVM.
jar Package up all the project's files into a jar file.
javac Compile Java source files.
new Create a new project skeleton.
plugin Manage user-level plugins.
pom Write a pom.xml file to disk for Maven interop.
repl Start a repl session either with the current project or standalone.
run Run a -main function with optional command-line arguments.
swank Launch swank server for Emacs to connect.
test Run the project's tests.
test! Run a project's tests after cleaning and fetching dependencies.
uberjar Package up all the project's files and dependencies into a jar file.
Итак, вы начинаете новый проект, выполняя lein new <name of project>
, который генерирует стандартную структуру каталогов дляЗакрытый проект.После того как вы написали свой код, вы можете запустить lein compile
, чтобы просто скомпилировать исходный код Clojure, или вы можете перейти прямо к lein jar
, чтобы упаковать ваш код в файл Jar.Для исполняемого файла jar, который включает в себя язык Clojure и все зависимости, необходимые для запуска вашей программы, используйте вместо этого lein uberjar
.
Если вы не используете эти инструменты, то вам нужно вручную управлять classpath, чтобы включитьгде вы храните ваши банки зависимостей и где живет ваш исходный код.Я настоятельно рекомендую использовать один из вышеупомянутых инструментов сборки.