用于将 Clojure .clj 编译为 .class / .jar 的简单工具

2023-11-29

我发现了两种将 Clojure *.clj 文件编译为 *.class 文件的方法,虽然它们都有效,但我对它们都有一些抱怨。

The 第一使用 REPL,因此无法自动化(或者可以吗?)

The 第二个 uses lein。坦率地说,我不明白为什么我应该使用依赖管理工具来处理应该成为该语言核心工具链一部分的东西。但无论如何,使用lein soon 强制您使用本地 Maven 存储库如果您的 Clojure 代码需要访问本地 jar(这很有可能)。

是否有更好的方法从 Clojure 代码生成 *.class 或 *.jar 文件,仅涉及核心 Clojure 工具并且可以以脚本化、非交互式方式使用?


Clojure 提供clojure.core.Compile,可用于从命令行编译 Clojure 代码。

java -Dclojure.compile.path=<targetdir> -cp <targetdir>;clojure.jar <list of namespaces>

有关如何从 ant 使用此功能的示例,请查看compile-clojureClojure 自己的 build.xml 文件中的任务。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用于将 Clojure .clj 编译为 .class / .jar 的简单工具 的相关文章

  • 在抛出异常之前重试某件事 3 次 - 在 clojure 中

    我不知道如何在Clojure中实现这段Python代码 for i in range 3 try except e if i 2 raise e else continue else break 我想知道为什么在 Python 中如此简单的
  • 使用 CounterClockwise 和 Eclipse 在 Clojure REPL 中进行评估

    我通常使用 Emacs 但受到启发再次尝试 CCW Eclipse 我有一个 Clojure 测试项目 其源文件 src user clj 包含以下内容 ns user println hi 我有一个 REPL 我从 Window gt S
  • Clojure 集合与序列的相等性

    我注意到 Clojure 1 4 似乎很乐意考虑向量等于seq相同的向量 但同样不适用于地图 1 2 seq 1 2 gt true 1 2 seq 1 2 gt false 为什么要这样的行为 这样会有所不同吗 Clojure 的 可以认
  • 为什么我收到无法动态绑定非动态变量?

    我正在尝试使用 clojure tools trace 命名空间的 dotrace 函数 dotrace my function my function 5 但我收到了这个错误 IllegalStateException 无法动态绑定非动态
  • 宏内调用函数和宏的区别?

    我的难题是以下示例 defmacro macro1 x println x defn func1 x println x defmacro macro2 x macro1 x func1 x defmacro macro3 x func1
  • 如何安装 leiningen 插件?

    如何安装 leiningen 插件 例如 leiningen run 我看到这个叫做 clojars org 的东西 以及如何 推 它 但我没有看到任何关于从中 拉 的东西 如果 Clojars 上有可用的插件 例如 lein run 只需
  • 内存数据存储中有 Clojure 吗?

    我主要在 Node 中编程 并且喜欢文档存储 但我想首先对客户端和服务器之间的数据调用进行原型设计 我用过lowdb https github com typicode lowdb and da base https github com
  • 如何检查spec/col-of中的不同ID

    s def users s coll of user distinct true 上面的规范要求每个用户映射都是不同的 但是我如何指定它来检查不同的 user ids only 不应允许以下集合 id 10 name Jessica id
  • clojure.spec 人类可读的形状?

    使用 clojure spec 有没有办法为嵌套映射定义更 人类可读 的规范 以下内容读起来不太好 s def my domain entity s keys req un a b s def a s keys req un c d s d
  • 从外部 clojar 导入/使用资源

    我想做的是将一个大文件 MIDI 声音字体 打包到一个独立的 Maven repo clojar 中 然后能够以编程方式将其拉下来并从单独的项目中使用它 事实证明 这个看似简单的任务比我想象的要复杂 理想的情况是 如果有一种方法可以直接访问
  • Clojure 尾递归与质因数

    我正在尝试自学 clojure 并使用 Prime Factors Kata 和 TDD 的原则来实现这一目标 通过一系列 Midje 测试 如下所示 fact primefactors 1 gt list fact primefactor
  • clojure - 不同命名空间中的评估代码

    我正在编写类似 REPL Server 的代码 用户的请求在这样的函数中评估 defn execute request str try eval read string request catch Exception e getLocali
  • 如何在 repl 中加载新的 clojure 库

    所以我有这个工作流程问题 我很高兴在我的 clojure 项目 repl 上打字 并意识到我需要另一个不在我的库中的库project clj 在这种情况下 我需要tools cli图书馆 我打开project clj在我的编辑器中添加一个条
  • 如何在 Clojure 中创建循环(且不可变)数据结构而不需要额外的间接?

    我需要在 Clojure 中表示有向图 我想将图中的每个节点表示为一个对象 可能是一条记录 其中包含一个名为 edges这是从当前节点直接可达的节点的集合 希望这是不言而喻的 但我希望这些图表是不可变的 我可以构造有向acyclic只要我进
  • 惰性序列内部究竟如何工作

    我是 clojure 的新手 不清楚惰性序列在内部是如何工作的 或者更具体地说 返回惰性序列的函数意味着只有在需要时才会计算结果 例如在下面的例子中 defn fc lazy fn xs lazy seq if let xss seq xs
  • Clojure:对于 n 维

    Clojure 中的函数for可用于迭代嵌套序列 想象一个具有 x y 和 z 轴的 3D 空间 for x range 10 y range 5 z range 2 x y z 上面的代码将生成一个向量序列 表示长方体内所有可能的位置 当
  • 为什么 CouchDB 使用仅追加 B+ 树而不是 HAMT

    我正在阅读数据结构 尤其是不可变的数据结构 例如仅追加 B 树 http guide couchdb org draft btree html用于 CouchDB 和哈希数组映射 trie http en wikipedia org wik
  • Clojure 为什么命名为 Clojure

    为什么该语言的名称是 Clojure 我用谷歌搜索了一下 在 clojure 中询问 到目前为止 还没有运气 Rich Hickey 他是 Clojure 的设计者 对此的评论是 wiki 上的第一个参考链接 您是否根据以 closure
  • 没有这样的命名空间:clojurescript 项目设置中的 clojure.spec.alpha

    我在尝试学习clojure spec 在沿着启动构建工具设置 clojure 项目时 我在需要 clojure spec alpha 时遇到以下错误 Compiling ClojureScript js app js No such nam
  • defn 和 defmacro 和有什么不一样?

    defn 和 defmacro 和有什么不一样 函数和宏有什么区别 defn定义一个函数 defmacro定义一个宏 函数和宏之间的区别在于 在函数调用时 首先评估函数的参数 然后使用参数评估函数体 另一方面 宏描述了从一段代码到另一段代码

随机推荐

  • 从 google apps 脚本发送 iso-8859-1 字符

    我正在尝试调用从谷歌应用程序脚本发送短信的服务 该服务需要 ISO 8859 1 格式的数据 下面的代码发送一条消息 其中 为坏字符 function sendSMS var doc SpreadsheetApp getActiveSpre
  • 列表上的 Groovy 点表示法

    我不明白 Groovy 中以下构造的目的 每当你有一些东西的集合时 就调用它items 您只需访问集合上的属性即可映射该属性 即 items prop items collect it prop 这对我来说看起来很奇怪 因为我认为第一个符号
  • 警告:mysqli::mysqli():(HY000/1045):[重复]中的用户“database”@“localhost”(使用密码:NO)访问被拒绝

    这个问题在这里已经有答案了 我正在尝试使用 php 连接数据库 但出现此错误 警告 mysqli mysqli HY000 1045 第 7 行 C wamp64 www Login test 2 0 connectivity php 中的
  • 如何从消息队列中删除消息(仅当其格式正确时)?

    我想从一个队列中获取消息并将其发送到数据库 我只想在特定格式下才这样做 如果我使用Receive直接调用方法 访问时出现异常Body的消息 我失去了消息 因为Receive的方法MessageQueue从队列中删除消息 为了避免丢失消息 现
  • 通用列表 - 移动列表中的项目

    所以我有一个通用列表和一个oldIndex and a newIndex value 我想将物品移至oldIndex to newIndex 尽可能简单 有什么建议么 Note 该项目应位于以下项目之间 newIndex 1 and new
  • 无法导入 facebook-sdk 4.0.1

    我有 android studio 1 1 0 我刚刚创建了一个新项目 我正在尝试导入新的 facebook sdk 4 0 1 但无法执行此操作 我遵循脸书入门 But can not get it work My app structu
  • 如何检查 URL 是否有效

    如何检查字符串是否是有效的 URL 例如 http hello it gt yes http bra ziz gt no 如果这是一个有效的 URL 我如何检查它是否相对于图像文件 Notice 正如 CGuess 所指出的 这个问题存在一
  • 单击按钮之前执行 Tkinter 按钮命令[重复]

    这个问题在这里已经有答案了 我创建了一个框架 其中我有两个浏览按钮 我想浏览两个以 txt 扩展名结尾的文件并将其打印在屏幕上 在我的场景中 在按下框架上的按钮之前浏览调用的函数 我期待当我按下按钮时它应该被调用 附完整代码 请有人纠正我做
  • Ruby `require` 调用在自定义代码上失败

    我发现我使用没有问题require加载类似 Sinatra Web 框架的东西 但我似乎无法使用require加载我自己的自定义代码 例如我有两个文件 test1 rb test2 rb test1 rb 的内容是 usr bin env
  • CPUID标准函数01H是什么?

    我需要检查ECX对于位 30 这是必要的 CPU 功能RDRAND 来自RDRAND Wiki 如果支持 则在调用 CPUID 标准功能 01H 后设置 ECX 寄存器的位 30 我不太清楚这意味着什么 标准功能01H 意思是不是EAX 8
  • 使用Python替换或交换文件中的子字符串

    假设我有以下形式的 ASCII 文件中的一行 text1 stringA text2 stringB text3 where stringA and stringB 是感兴趣的子串 我们分别称它们为 A 和 B 琴弦 text1 text2
  • 尝试创建 iOS 应用程序存档时出错:“无法创建配置文件,因为您的团队没有注册设备。”

    我正在尝试使用 Xcode 创建 iOS 应用程序的存档 以将其提交到 App Store 但是 当我选择 iOS 设备 作为目标并单击 产品 存档 时 会弹出以下错误消息 无法创建配置文件 因为您的团队没有在会员中心注册的设备 请连接设备
  • 通过xpath获取div的HTML内容[重复]

    这个问题在这里已经有答案了 我需要以下问题的支持 我有一个网站 我想通过 xpath 获取产品描述 下面是内容的示例 html div span some test span img src p some content etc p div
  • 如何在 Django 中处理具有多个变量的同一参数的 request.GET

    在 Django 视图中 您可以访问request GET variablename 所以在你看来你可以这样做 myvar request GET myvar 实际上request GET myvar 对象类型是
  • 使用 ajax 添加事件监听器效果不佳

    我想在 div 内显示 txt 文件的内容 因此我使用按钮调用我的函数 但即使我不按按钮 函数也会触发 这是我的 HTML 代码
  • 如何在 C# 中存储从 C++ 函数返回的 uint8_t* 变量?

    我正在从 C 程序调用 C dll 该 DLL 由几个函数组成 除了这个函数之外 我可以调用其中的大多数函数 C 函数如下 declspec dllexport uint8 t myHash const char filename uint
  • 制作电子邮件表单发送电子邮件

    我有以下来自 HTML 模板的电子邮件表单代码 我想让它发送电子邮件 因为我认为它不会发送电子邮件 并且我需要添加一些 JavaScript 来处理表单 关于如何对此表格执行此操作有任何提示吗 谢谢你
  • 将我的小数浮点四舍五入到最接近的一半或整数?

    好吧 我在我的应用程序中的计算遇到了问题 我很确定这是由于小数太长造成的 无论如何 这是需要完成的事情 因为它将大大减少我需要的代码量 下面是我目前如何拥有这部分代码 float ab1 abdomen1Input text floatVa
  • 运行时不要锁定应用程序文件

    我正在创建一个能够自我更新的软件应用程序 启动后 应用程序检查是否有可用更新 下载这些文件 程序集 然后继续加载它们 然而 问题是当应用程序由多个用户同时运行时 在终端服务器上运行时会发生这种情况 应用程序无法替换那些旧文件 因为 Wind
  • 用于将 Clojure .clj 编译为 .class / .jar 的简单工具

    我发现了两种将 Clojure clj 文件编译为 class 文件的方法 虽然它们都有效 但我对它们都有一些抱怨 The 第一使用 REPL 因此无法自动化 或者可以吗 The 第二个 uses lein 坦率地说 我不明白为什么我应该使