"Leiningen is for automating Clojure projects without setting your hair on fire."- czyli jak krok po kroku przygotować Emacsa do współpracy z Clojure i Leiningen. Podam też sposób jad dołączać własne biblioteki do projektu przy użyciu Maven.
Instalacja będzie prowadzona na systemie Ubuntu 12.10 x64. Jeżeli ktoś zauważy jakieś niezgodności, to proszę o komentarz.
Leinngen jest menedżerem pakietów dla projektów Clojure. Ma on ułatwić pracę z zależnościami. Jednak nie ma tak pięknie jak można by się spodziewać na pierwszy rzut oka. Jeżeli pakietów nie ma w repozytorium Clojure, to trzeba stworzyć sobie własne. O tym na końcu.
Krok 1: Instalacja Emacs 24.x i Leiningen 2
Najprościej jest to zrobić z terminala tymi poleceniami:
sudo apt-get install emacs24
wget https://raw.github.com/technomancy/leiningen/preview/bin/lein
chmod 755 lein
sudo mv lein /usr/bin
lein self-install
Krok 2: Konfiguracja Emacs
Poleceniem z konsoli uruchmić:
emacs ~/.emacs.d/init.el
Wkleić to i zapisać:
(require 'package)
(add-to-list 'package-archives
'("marmalade" . "http://marmalade-repo.org/packages/"))
(package-initialize)
Potem (M-x to klawisz Alt+x, po wciśnięciu wpisać resztę polecenia):
M-x eval-buffer
Krok 3: Instalacja wtyczki clojure-mode
Teraz trzeba załadować listę pakietów. Nie wiem dlaczego tak, ale sposób podany na Github u mnie nie zadziałał, więc metodą prób i błędów tak mi się udało.
Trzeba wyświetlić listę pakietów poleceniem:
M-x package-list-packages
Znaleźć pakiet clojure-mode. Kliknąć [Install] i zamknąć Emacs.
Krok 4: Przykładowy projekt
Utworzyć projekt poleceniem w terminalu:
lein new clojure-projekt1
Następnie wejść do katalogu projektu i edytować plik konfiguracji project.clj. Emacs by widzieć projekt musi być uruchamiany z katalogu głównego projektu:
cd clojure-projekt1
emacs project.clj
Wkleić tę linijkę:
:plugins [[lein-swank "1.4.4"]]
nad linijkę z :dependencies
W Emacs uruchomić serwer Swank poleceniem:
M-x clojure-jack-in
I voila ;). Powinien się pokazać REPL.
Przykładowe polecenia przydatne przy współpracy z Emacs i SLIME (C - Ctrl, M - Alt):
Dodawanie własnych bibliotek do projektu
Najpierw trzeba zainstalować Maven2:
sudo apt-get install maven2
Następnie trzeba mieć jakąś bibliotekę w bieżącym katalogu, np. ormlite-core-4.42.jar.
Poleceniem poniżej dodaje się taką bibliotekę do lokalnego repozytorium mavena:
mvn install:install-file \
-Dfile=ormlite-core-4.42.jar \
-DgroupId=self \
-DartifactId=ormlite-core \
-Dversion=4.42 \
-Dpackaging=jar \
-DgeneratePom=true
Po pozytywnym przetworzeniu powinien pojawić się napis BUILD SUCCESSFUL. Następnie do pliku projektu w sekcji :dependencies trzeba dodać linijkę i zapisać:
[self/ormlite-core "4.42"]
Następnie w katalogu projektu w terminalu dać polecenie:
lein deps
I to wszystko. ;)