java - Java+Clojure同时开发: Cider without Leiningen?

标签 java clojure project-management leiningen cider

场景如下:我正在开发一个需要 Java 解决方案的类的项目:特别是,关键函数接收人工智能问题并返回答案字符串。我的预期方法是接收问题,然后将其发送到 Clojure 函数,该函数解决该问题并将解决方案字符串返回给关键函数,然后由关键函数提交它。

我的问题是工作流程之一。作为一名狂热的 emacs 用户(尽管是 Clojure 的新手),我希望获得使用 Cider 的好处。然而,由于该项目的 Clojure 和 Java 部分都在开发中,因此在莱宁根启动一个新项目似乎不可行或没有必要。目前,我已经在 J​​ava 中内置了一个类,该类在调用时向 Clojure 处理 AI 问题,然后从命令行(非 Cider)启动 REPL 并开始处理它,将进度保存在 .clj 中。一旦我以这种方式解决了 AI 求解器,我计划放弃自定义问题处理类(在最终提交中无效),只需将问题从关键 Java 函数传递到主要 Clojure 函数并返回答案字符串.

我的最终提交文件必须包括:KeyFunction.java

我的最终提交文件还可以包括:myClojureFile(JAR 或其他 Java 可调用格式)

那么,就最终提交而言,当我的“项目”实际上是用 Java 语言编写时,我该如何解决这个问题,同时获得 Cider(它的说明始终包含 Leiningen 项目)的好处呢?

最佳答案

您可以运行nrepl服务器由 clojure.tools.nrepl 提供并通过 cider 连接到此。您还需要使用您的 cider 中的任何 nrepl 中间件版本预计。由于您没有使用 lein您需要通过 maven 配置依赖项或在本地安装它及其所有依赖项(以及 cider 版本所需的中间件)。

但到目前为止,更好的解决方案是使用 leiningen ,这简化了此设置。

一个leinengen项目可以包含 Clojure 和 Java 代码。正如 tutorial 中提到的,lein 将编译 Java 代码,然后编译 Clojure 代码。

If you have any Java to be compiled in :java-source-paths or Clojure namespaces listed in :aot, they will always be compiled before Leiningen runs any other code, via any run, repl, etc. invocations.

关于java - Java+Clojure同时开发: Cider without Leiningen?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25930222/

相关文章:

sql - 不能在 clojure 中使用 jdbc

clojure - 在 Clojure 中创建自定义空白

java - Android:寻找音频输入的基本频率

java - 应用程序在使用线程时只是卡在中间?

arrays - 在clojure中将字节转换为字符串

project-management - 技术人员和非技术人员的项目管理+ SCM?

project-management - 移植程序的编程时间表

java - Eclipse 看不到 CLASSPATH

java - Surefire 2.22.2 在移除提供者依赖后没有找到 junit 测试

java - 减轻 Maven pom.xml 文件(或 : a critique of Maven by a fan)