تمهيد تطوير Leiningen البرنامج المساعد في Clojure

أحاول كتابة ملحق Leiningen متوافق مع الإصدار الأخير والإصدار 2.0 التالي ، ولكن أواجه مشكلات في تشغيل المكون الإضافي على نفسه. ما أعنيه بهذا هو أنني أود كتابة الرموز ثم تشغيل lein foo لتشغيل أحدث إصدار من كود البرنامج المساعد على كود البرنامج المساعد نفسه. ملف project.clj الخاص بي هو أدناه:

(defproject foo "0.0.0"
  :description "simple version for experiment"
  :dependencies [[org.clojure/clojure "1.4.0"]
                 [fs "1.1.2"]]
  :source-path "src/clj")

في المجلد src/clj/leiningen لدي ملف foo.clj بسيط يقوم فقط باستدعاء الدالة في src/clj/bar/foo-test.clj التي تطبع محتويات دليل المشروع. ومع ذلك ، عندما أقوم بتشغيل lein foo تقول أنه غير قادر على إيجاد foo.clj على CLASSPATH. إذا قمت بنقل جميع الملفات من src/clj إلى src وإزالة : source-path Directive ، فسيتم تشغيل الأمر الصحيح في foo.clj ، ولكن بعد ذلك تشتكي من fs.clj غير موجود في CLASSPATH. كنت آمل أن يكون هذا أسهل من دون الحاجة إلى إضافة التبعية إلى foo.clj و lein install، deps، foo بين التغييرات ، ولكن هذه هي الطريقة الوحيدة التي أجعلها تعمل الآن.

شكرا لك على المساعدة!

2

1 إجابة

وفقًا لما يلي: https://github.com/technomancy/leiningen/blob/ master/doc/PLUGINS.md ، : source-path الآن : source-paths في Leiningen 2.0 ، ويجب أن يحتوي على متجه بدلاً من سلسلة مباشرة .

الخطأ المحتمل الآخر هو عدم وجود : eval-in-leiningen true في ملف المشروع. أعتقد أن هذا ضروري لوراثة CLASSPATH من leiningen نفسها. لست متأكدًا إذا كان ذلك يؤدي إلى حدوث أي مشكلات في العثور على fs.clj رغم ذلك.

0
وأضاف