2011-12-01 43 views
19

我有多個單獨的leiningen項目,表面上可能依賴於彼此。如何設置leiningen以與多個項目一起工作?

例子:

~/projects/mywebapp (my own project) 
~/projects/noir  (a clone of the github repo) 
~/projects/clojureql (a clone of the github repo) 

我想將它們全部編入在同一時間同一個JVM。我想運行git repos bleeding edge(提交新提交/創建我自己的提交),而不必運行lein jar或lein deps,並且如果我更改任何項目,肯定不必重新啓動VM。

這裏的一個用例:

運行LEIN自吹,從emacs的內後,我連接到REPL和編譯從mywebapp一個文件(帶有C-C-K),這需要從黑色的文件。它在我的項目目錄中找到該文件的版本。之後,我打開該文件,編輯它並編譯它(使用C-c-k)。

請注意,我不會要求自動編譯時,我做混帳拉。我只是不想重新啓動JVM或做冗長的jar編譯過程。

這在leiningen可能嗎?我如何設置?

回答

17

這個問題從Lein FAQ幫助?

Q:我想破解並行的兩個項目,但它很煩人它們之間進行切換。

A:使用稱爲檢出依賴項的功能。如果您在項目根目錄中創建一個名爲checkouts的目錄,並將其他一些 項目根插入其中,Leiningen將允許您在 平行線中對它們進行破解。這意味着依賴關係的變化將在 主項目中可見,而無需通過整個 install/switch-projects/deps/restart-repl循環。請注意,這不是 列出項目的替代項:依賴項;它只是 補充說明爲更緊密的更改週期。

+0

謝謝!我一定錯過了FAQ。 –

+1

非常有用。該信息應該在主文檔中。 – Glen

3

如果您已經在使用swank,則不需要lein checkout依賴項。你可以只用C-C C -K你的項目(它會加載黑白版本的任何東西),然後瀏覽到你的本地版本noir和C-c C-k。 Swank愉快地把所有的代碼發送給你的repl,並且jvm從不需要知道它來自不同的地方!

雖然我只能推薦這個小改動,因爲我認爲如果你編譯noir.core,這取決於(說)noir.internal,clojure會加載noir.internal的震撼版本,即使你編譯本地noir.core版本。即便如此,這也是一般的方便技巧。

相關問題