【metabase二次开发 • 二】解析project.clj

一、projec.clj介绍

  • Leiningen配置文件,类似于java项目中的pom文件
  • 配置方法和字段说明参见leiningen官方说明 sample.project.clj中文翻译
  • 以下将解析metabase中相对重要的配置

二、Aliases

  • 自定义task,用于在终端中通过命令行指令调用
  • 可以理解为将多个命令组合在一起,简化为一个命令进行调用,示例参考 stack overflow

示例:“run-ee” [“with-profile” “+run,+ee” “run”]

  • 在命令行中运行 lein run-ee, 等效于运行 lein with-profile +run,+ee run
  • 括号中第一项 with-profile 表示将引入profile中配置的环境
  • 括号中第二项为环境项,+ 代表引入, - 代表去除(若当前环境已经引入),多个环境项用逗号隔开
  • 括号中剩余项为执行命令,可以有多项,用空格分隔

三、Dependencies

  • 引入包,与maven包管理方式类似,如果有包冲突需要在引用时排除
    示例: [colorize “0.1.1” :exclusions [org.clojure/clojure]]

    1. ring

    • 网站服务框架,可以理解为简化版的SpringBoot github地址

      【plugin】lein-ring

      • 基于lein和ring的开发的热启动框架,开发过程中可以自动检测代码的改动并重启服务,调试非常方便;github地址
      • 当接口被调用时lein-ring才会检查是否有代码被修改并重启服务,其它时间不会自动重启;
      • 需要在插件项中配置handler位置,程序会自动加载handler所在命名空间,注意若命名空间中显式启动了server会导致lein-ring热启动失败
      • 启动命令:lein ring server-headless 8080

    2. compojure

    • 路由分发框架,解析http请求并进行分发 github地址

    3. toucan

    • 可以理解为clojure版的Mybatis,基于HoneySQL和clojure.java.jdbc开发 github地址
      Honey SQL
      • sql语句组装框架,只负责sql组装,一般组装后交给jdbc执行 github地址
      clojure.java.jdbc

四、Profiles

  • 默认 :dev:user 环境是激活的,执行 lein repl 时激活 :repl ,执行 lein uberjar 时激活 :uberjar
  • :user 默认在~/.lein/profiles.clj 中配置(不建议在project.clj中配置),:dev 默认在测试和开发环境生效
  • profile中包括 [vector] 和 {map} 两种格式,[vector]用于引用其它已配置的环境,{map}用于配置具体环境

:ci {:jvm-opts ["-Xmx2500m"]}

  • 直接配置ci环境,{map} 中的 :key 需与project.clj中规范的 :key 和 value 保持一致,详见 sample.project.clj
  • 引用ci环境时(直接在命令行引用或通过 :aliases 配置),会将该参数合并到project.clj中进行加载;

:run [:include-all-drivers :exclude-tests {}]

  • 引用已经配置好的 include-all-driversexclude-tests 环境,自身不再配置环境

:repl [:include-all-drivers {:jvm-opts ["-Duser.timezone=UTC"]}]

  • 引用已经配置好的 include-all-drivers 环境,同时自身再定义一个jvm环境配置
  • profiles相关介绍资料很难找,最详细文档是在终端中输入命令行指令:lein help profiles,会输出profiles解释
  • metababase中定义的环境包括
    1. 【oss】空
    2. 【ee】企业版,改变了source-paths 和 test-paths
    3. 【dev】测试环境
    4. 【junit】
    5. 【ci】
    6. 【install】空
    7. 【install-for-building-drivers】
    8. 【exclude-tests】清空test任务路径
    9. 【run】include-all-drivers + exclude-tests
    10. 【run-with-repl】run + repl设置
    11. 【ring】run + lein-ring配置
    12. 【with-include-drivers-middleware】
    13. 【test-common】
    14. 【test】with-include-drivers-middleware + test-common
    15. 【include-all-drivers】
    16. 【repl】include-all-drivers + jvm时区设置
    17. 【linters-common】
    18. 【bikeshed】
    19. 【eastwood】
    20. 【reflection-warnings】
    21. 【docstring-checker】
    22. 【check-namespace-decls】
    23. 【cloverage】
    24. 【uberjar】
    25. 【strip-and-compress】
    26. 【profile】
    27. 【h2-shell】
    28. 【generate-automagic-dashboards-pot】
    29. 【compare-h2-dbs】
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Metabase是一种开源的业务智能(BI)工具,具备丰富的数据分析和可视化功能。作为一个强大的BI工具,Metabase也提供了二次开发的功能,使用户可以根据自己的需求进行定制和扩展。 Metabase二次开发工具包括以下几个方面: 1. Metabase API:Metabase提供了强大的API,可以通过编程方式对Metabase进行定制和扩展。开发人员可以使用API来获取数据、创建和修改问题(queries)、设置图表和仪表盘等。通过使用API,用户可以更精确地控制Metabase的功能。 2. 使用自定义查询:Metabase支持使用SQL进行查询,用户可以利用自己熟悉的数据库查询语言进行复杂查询。通过编写自定义查询语句,用户可以在Metabase中实现更复杂的数据分析和报表需求。 3. 自定义数据可视化:Metabase提供了多种图表类型和可视化效果,但有时可能无法完全满足用户的需求。用户可以通过定制CSS来自定义图表的样式和外观,以实现更好的数据可视化效果。 4. 自定义插件和扩展:Metabase还支持开发者通过创建插件或扩展,来增加新的功能和特性。通过插件机制,用户可以将自己开发的功能集成到Metabase中,以满足特定的业务需求。 Metabase二次开发工具使开发人员能够根据具体业务需求对Metabase进行定制和扩展。无论是通过API进行编程,使用自定义查询语句,定制数据可视化,还是通过插件和扩展添加新功能,Metabase都提供了丰富的扩展性和灵活性,使用户能够深度定制、个性化地使用Metabase进行数据分析和可视化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值