2015-01-28 17 views
5

Test Clojure projemde Kris Jenkins'in Yesql kütüphanesini kullanmaya çalışıyorum. Tek bir sorgu ile bir örnek queries.sql dosya oluşturduk. Tek core.clj dosyası (precalc Test projesinin adıdır) aşağıdaki gibidir:Clojure Yesql sorgu dosyasını bulamadı

(ns precalc.core) 
(require '[yesql.core :refer [defqueries defquery]]) 

(println (defqueries "resources/queries.sql")) 
(defquery col-type "resources/queries.sql") 
(slurp "resources/queries.sql") 

mesela değerlendirmek teşebbüs Satır 4, ben boşuna değil, aynı zamanda kök proje klasörünün içine queries.sql koyarak denedim

;!!CompilerException java.io.FileNotFoundException: resources/queries.sql, compiling:(precalc/core.clj:4:10)

olsun. Slurping çalışır. Benim hatam çok açık olmalı. Birisi lütfen yardım edebilir mi?

Cider-nrepl ile bağlanan Leiningen repl, Macvim ve Tim Pope's vim-şömine eklentisini kullanıyorum.

Teşekkürler! Zaten koymak yana

/git/project/test:/git/project/src:/git/project/dev-resources:/git/project/resources:... 

:

cevap

9

dosya onlar Bunlara benzer bakacağız, ilk birkaç girişlerinde

lein classpath 

Bak kullanarak gösterebilir hangi Sınıfyolu üzerinde olmak zorunda resources içine ayarlandıysanız, ayarlandı. eserler çünkü dosya sistemi üzerinde doğrudan faaliyet

(defqueries "queries.sql") 

slurp değil: Önemli olan nokta, ancak, defqueries geçmek yolu resources için dava göreli böylece sınıf için göreli, olmak zorunda olmasıdır sadece sınıf yolunda. REPL'nizi proje köküne başlattığınız için, resources/queries.sql mükemmel bir yoldur.

+0

Vay canına! İşe yarıyor! Teşekkürler! Yesql'in göreceli yollara ihtiyacı olduğunun farkında değildim. Ben yanlış yerlerde kovalayan oldu - lein classpath proje kök klasörü içermez, bu yüzden ben bir şey yapıyordum. – siphiuel