考虑一个具有资源文件夹的 Clojure 项目,该文件夹包含一些文件和另一个名为“public”的文件夹,其中包含一些 Web 内容。
我正在寻找一个启动任务,它编译 ClojureScript,然后仅将公共目录移动到全局文件系统中的另一个目录。最后,文件夹应重命名为“project- version ”。
以下不起作用,因为move-files
仅适用于文件而不适用于目录。但是,我认为它澄清了这个想法:
(def project-name "My")
(def project-version "0.1.0")
(deftask store-web-dir []
(let [dir-name (format "%s-%s" project-name project-version)]
(comp
(cljs :optimizations :advanced)
(move-files :files {"public" dir-name}) ;; should rename the dir public to ..
(copy :output-dir "/some/path/web_dirs"
:matching #{(re-pattern (str "^" dir-name "$"))}))))
在此之后,应该有一个文件夹/some/path/web_dirs/My-0.1.0
,其中包含项目所有公共文件的编译版本。