Minęło trochę czasu, odkąd zamieściłem to pytanie i pomyślałem, że odstąpię od tego, co znalazłem, ponieważ dla każdego, kto potrzebuje to pytanie odpowiedziało.
Teraz używam Leiningen do zarządzania moimi projektami, chociaż zacząłem grać z cljr, który jest repliką i menedżerem pakietów, który je uzupełnia. Każda z tych opcji znacznie ułatwia generowanie działającego pliku jar.
Wykonanie Leiningena jako przykładu należy przeprowadzić za pomocą instrukcji na stronie, a następnie zadzwonić pod numer lein new
w swoim obszarze roboczym. Spowoduje to utworzenie folderu do przechowywania projektów, a także podfolderów dla źródła i przetestuje plik readme i plik project.clj.
Edytuj plik project.clj za pomocą zależności, których będziesz używać. Dev-dependencies są zależnościami, których potrzebujesz tylko do rozwoju, takich jak swank-clojure pokazane w poniższym przykładzie.
(defproject myproject "0.0.1-SNAPSHOT"
:description "My Personal Project."
:url "http://example.com/my-project"
:dependencies [[org.clojure/clojure "1.1.0"]
[org.clojure/clojure-contrib "1.1.0"]
[**other dependencies**]]
:dev-dependencies [[swank-clojure "1.2.1"]]
:main [org.myproject.core])
znajdę Swank-clojure użyteczne, jak można następnie wpisz lein swank
rozpocząć wystąpienie Swank, które można podłączyć do urządzeń emacs.
: main definiuje, która przestrzeń nazw zawiera funkcję -main.
Wywołanie lein uberjar
utworzy samodzielny słoik, który następnie zostanie uruchomiony.
Mam nadzieję, że pomoże każdemu, kto miał mój problem!
'Błąd: Nie można znaleźć lub wczytać głównej klasy [prueba.core]'. Zawarłem ': main' i odpowiadającą mu wartość, i mam funkcję' -main', która jest publiczna w tej przestrzeni nazw. Masz pojęcie, co może być nie tak? – m0skit0
Hi @ m0skit0, minęło trochę czasu, odkąd to napisałem. Czy w uporządkowany sposób uporządkowałeś swoje katalogi? Mam przez to na myśli twoje 'project.clj' w folderze zawierającym' src' zawierające 'prueba' zawierający' core.clj'? Czy użyłeś 'lein new', a następnie edytujesz utworzony plik 'core.clj'? Jeśli nie, czy możesz wyjaśnić, co zrobiłeś tak wyraźnie, jak to możliwe? –
toofarsideways
Struktura projektu jest poprawna, ponieważ została stworzona przez Leiningen. W końcu udało mi się go uruchomić, używając następującej składni ': main root.scriptlauncher: aot [root.scriptlauncher]' dla 'defproject'. – m0skit0