下面是一个场景:我正在为一个需要Java解决方案的类开发一个项目:特别是,关键函数接收一个AI问题并返回一个答案字符串。我的目的是接收问题,然后将其发送到Clojure函数,该函数解决了问题,并将解决方案字符串返回给键函数,而键函数又会提交它。
我的问题是工作流程问题。作为一个狂热的emacs用户(虽然对Clojure来说是新手),我想获得使用Cider的好处。但是,由于这个项目的Clojure和Java部分都在开发中,在Leiningen启动一个新项目似乎是不可行的,也不是必要的。目前,我已经在Java中构建了一个类,该类在调用时将AI问题处理给Clojure,然后从命令行(非Cider)启动REPL并开始工作,从而节省了.clj中的进度。一旦我有了这样的AI解决程序,我就计划摆脱自定义的问题经销商类(在最后的提交中无效),只需将问题从键Java函数传递给一个主Clojure函数,并得到答案字符串。
我的最终提交文件必须包括:KeyFunction.java
我的最终提交文件也可以包括:myClojureFile (JAR或其他Java可调用的格式)。
那么,当我的“项目”在最终提交时,我如何在获得Cider (它的指令总是包括Leiningen项目)的好处的同时实现这一点呢?
发布于 2014-09-19 15:33:10
您可以运行由nrepl提供的clojure.tools.nrepl服务器,并通过cider连接到该服务器。您还需要使用您的cider版本所期望的任何nrepl中间件。由于您没有使用lein,所以需要通过maven配置依赖关系,或者在本地安装它及其所有依赖项(以及您的cider版本所期望的中间件)。
但是到目前为止,更好的解决方案是只使用leiningen,这简化了这种设置。
leinengen项目可以同时包含Clojure和Java代码。正如在教程中提到的,lein将编译Java代码,然后编译Clojure代码。
如果要在:aot中列出的Java源代码路径或Clojure名称空间中编译任何java,那么在Leiningen运行任何其他代码之前,总是会通过任何运行、重新编程等方式编译它们。
https://stackoverflow.com/questions/25930222
复制相似问题