欢迎!请参阅关于页面以了解更多关于此网站的信息。
嗨,我想知道Clojure应用程序的插件系统有没有最佳实践。
这里所说的插件系统是指第三方编写作为Clojure应用程序插件加载的Clojure代码的结构或协议,而不需要重新编译应用程序。
一个示例用例是,一个Clojure应用程序旨在加载和转换某些数据集。它应该允许第三方编写插件,可以通过将代码部署到特定文件夹将其加载到转换管道中。应用程序不需要重新编译。
是否有一些最佳实践可以实现这一点?
希望这是Clojure的方式,而不是Java的方式。
提前感谢。
可以将“插件”(jar文件)放在类路径上,解析表示由“插件”提供的功能的符号,并对其进行调用。
既然你本就不用编译Clojure,就没有必要“重新编译”。
(编辑:还需要require函数的命名空间,以便在解析符号之前让Clojure加载该函数。)
require