2013-07-25 5 views
14

Powiedzmy, że było włamanie na biblioteki Clojure używałem w moim projekcie:Czy można pobrać kod biblioteki ładowania ze źródła lokalnego?

/Użytkownik/SCdF/Kod/myproject/
/Użytkownik/SCdF/Kod/inne ludy-projekty/clojure- biblioteka-sklonowany-z-github

Obecnie, kiedy dokonać zmian w clojure-library-cloned-from-github i następnie uruchomić lein install pchnąć moją nową wersję do lokalnego repozytorium (ja zmieniłem i ich project.clj pkt do nowszej wersji -SNAPSHOT biblioteki, aby była aktualizowana za każdym razem), a następnie uruchom ponownie/uruchom lein deps na myproject.

Czy jest sposób, w jaki mogę powiedzieć leiningenowi, aby w pliku ../../clojure-library-cloned-from-github szukał kodu źródłowego biblioteki zamiast używać znacznika i słoików, aby po wprowadzeniu zmian w kodzie były one widoczne w czasie wykonywania?

Odpowiedz

18

Sprawdź funkcjonalność Leiningens checkout dependencies.

Zasadniczo, można zrobić dowiązanie symboliczne do katalogu biblioteki w podkatalogu o nazwie „” z kas aktualnego projektu i dodać je do swojego profilu Leiningen. Teraz ten projekt jest ładowany za każdym razem, gdy twój program jest uruchamiany z Leiningen (REPL, uruchom).

Jeśli korzystasz z systemu Windows, zamiast tworzyć dowiązanie symboliczne, musisz utworzyć plik NTFS z dowiązaniem symbolicznym do katalogu o nazwie "junction point".

Zadbaj, że to nie zadziała, jeśli projekt nie jest faktycznie rozpoczął poprzez Leiningen (na przykład w Eclipse/lewo). Jeśli uruchomisz program CounterClockWise, musisz dodać bibliotekę, która ma być projektem Eclipse, a następnie edytować właściwości projektu Eclipse własnego projektu: W obszarze Ścieżka budowy Java> Projekty dodaj projekt biblioteki.

Teraz, jeśli zaczniesz od REPL-u Eclipse, biblioteka zostanie dołączona do ścieżki klasy Java. Jeśli jednak chcesz, aby projekt działał również w Leiningen, musisz również skorzystać z funkcji kasowania.

Oczywiście, gdy chcesz utworzyć samodzielną kompilację programu, sposób kasowania nie będzie już działać i musisz uwzględnić bibliotekę jako normalną zależność lub dołączyć wbudowaną wersję do swojego uberjara.

+0

Pytanie boczne, czy to nie pomyliłoby gita? Na "nix" wyobrażam sobie, że wie o miękkich łączach i można powiedzieć, żeby ich nie śledzić, ale czy punkty połączenia w systemie plików NTFS nie są w zasadzie przezroczyste? Przypuszczam, że dodajesz 'kaski /' do '.gitignore' – SCdF

+0

Tak, kasy to lokalna funkcja rozwijania. Właśnie dlatego musisz dodać bibliotekę do swoich zależności w projekcie, wersja kasy jest po prostu preferowana. Zignorowanie tego w swojej wersji jest dobrym pomysłem. – NielsK