Есть ли у Clojure файл конфигурации, похожий на ~ / .clisprc.lisp? - PullRequest
2 голосов
/ 07 марта 2011

На моей платформе мне нужно добавить (set! *compile-path* (str *compile-path* ":.")), чтобы (compile) нашел мои скрипты. Я бы предпочел не вводить это каждый раз, когда я хочу что-то скомпилировать.

Ответы [ 4 ]

4 голосов
/ 07 марта 2011

Самый простой способ справиться с настройкой вашего пути компиляции в 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, чтобы включитьгде вы храните ваши банки зависимостей и где живет ваш исходный код.Я настоятельно рекомендую использовать один из вышеупомянутых инструментов сборки.

3 голосов
/ 07 марта 2011

Вы можете указать -i при запуске Clojure, чтобы он оценивал файл при запуске.Ниже приведен скрипт, который я использую для запуска Clojure в качестве примера:

#!/bin/bash

# GUI mode
if [ "$1" != "--no-fork" ]; then
    gnome-terminal -t Clojure -x $0 --no-fork $* &
    exit
fi

shift

breakchars="(){}[],^%$#@\"\";:''|\\"
if [ -f project.clj ]; then
    lein repl
else
    rlwrap --remember -c -b "$breakchars" \
           java -Djava.ext.dirs=$HOME/.clojure clojure.main \
           -i $HOME/.clojurerc --repl
fi
2 голосов
/ 08 марта 2011

Leiningen будет загружать ~ / .lein / init.clj при каждом запуске.Кроме того, вы можете добавить ключ: repl-init в ваши файлы project.clj, чтобы загружать это пространство имен в каждом репле.Clojure на самом деле не предназначен для автономного использования без каких-либо вспомогательных инструментов, поэтому вызов (compile [...]) сам по себе почти никогда не является правильным ответом.

1 голос
/ 07 марта 2011

В Clojure это выполняется на уровне Java (classpath и т. Д.), А не в файле .rc.Когда я впервые начал программировать в Clojure, у меня был скрипт bash, который я запускал, но теперь я использую Leiningen.

...