当前位置:  开发笔记 > 编程语言 > 正文

如何在编译时获取项目版本

如何解决《如何在编译时获取项目版本》经验,为你挑选了0个好方法。

我在cljc文件中有以下代码:

(ns proj
  #?(:cljs
     (:require-macros
       [proj :refer [define-project-version]])))

(declare project-version)

#?(:clj
   (defmacro define-project-version []
 `(def ~'project-version ~(first (drop 2 (read-string (slurp "project.clj")))))))

(define-project-version)

当在clj文件中使用和启动REPL时,这确实有效.但是,当我制作一个uberjar并尝试运行它时,我得到一个关于project.clj的例外 - "没有这样的文件或目录." 错误来自ClojureScript部分.uberjar编译得很好.

为什么代码试图加载project.clj?是不是应该在编译时运行宏?

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有