设置 Datomic 类路径函数以供 Windows 中的事务处理程序使用

Setting Datomic classpath functions for use by transactor in Windows

我正在尝试设置一个类路径函数以供我的自定义事务处理函数使用,如下所述: https://docs.datomic.com/on-prem/database-functions.html#classpath-functions

我已将 DATOMIC_EXT_CLASSPATH 环境变量设置为我的 .jar 文件的路径,并且 添加 :requires 到交易函数。不过,当我尝试 运行 函数时,我得到了 FileNotFoundException Could not locate some_ns/some_file.clj on classpath 错误。

我正在使用 Windows 8,我应该做一些额外的步骤吗?我可以在 Datomic 事务处理程序的日志中看到事务处理程序正确使用 jar 文件吗?

从最新版本 (0.9.5786) 开始,存在一个错误,其中 DATOMIC_EXT_CLASSPATH 未在 windows 脚本中考虑。作为解决方法,我通过将 DATOMIC_EXT_CLASSPATH 附加到 CP_LIST:

修改了 Datomic 分发中的 bin\classpath.cmd 文件
@echo off
set CP_LIST=

for %%i in (.\lib\*.jar) do call bin\cpbuild.cmd %%i
for %%i in (.\*transactor*.jar) do call bin\cpbuild.cmd %%i
set CP_LIST=bin;resources;%CP_LIST%;%DATOMIC_EXT_CLASSPATH%

通过此修复一切正常