我可以从uberjar启动Gorilla REPL吗?

时间:2018-09-19 19:47:57

标签: clojure

我参与了这个由大猩猩REPL支持的伟大项目(具体来说是https://bitbucket.org/probprog/anglican-examples/),并且希望在某些受限的情况下使用它。

是否有一种方法可以生成只能使用JVM启动的uberjar?

好吧,我知道如何为该项目创建uberjar,但是我可以从中启动Gorilla REPL吗?如果不是,我必须添加什么以及如何启动它?

已编辑注意Juraj的答案:

我添加了一个具有以下内容的开始文件src / gorillaproxy / gorillaproxy.clj:

(ns gorillaproxy.gorillaproxy
  (:use [gorilla-repl.core :only [run-gorilla-server]])
  (:gen-class))

(defn -main
  [& args]
  (run-gorilla-server {:port 8990}))

然后我将[gorilla-repl“ 0.4.0”]添加到依赖项列表中(位于project.clj中),并添加到行中

:main gorillaproxy.gorillaproxy

通过这种方式,uberjar启动了Gorilla REPL,当我将工作表(以及数据,资源,如果需要)放在同一目录中时,一切正常。

1 个答案:

答案 0 :(得分:1)

Gorilla通常是通过lein-gorilla插件运行的,因此它不是uberjar的一部分。 如果您确实想创建一个包含大猩猩repl依赖项的捆绑软件,则需要将此功能手动添加到您的项目中。

问题是您为什么要这样做。 您想将这些样本分发给其他人吗?在这种情况下,您仍然需要将所有这些工作表放在运行uberjar的当前目录中,因为那是how gorilla repl discovers worksheets

您可以查看lein-gorilla source code,了解如何开始大猩猩复制。 然后,我将使用与您的项目相同的代码(创建新的src/core.clj文件或其他内容)并将其在project.clj中配置为:main。 您还需要add gorilla-repl as a dependency to your project.clj

但是请注意,您需要从英国国教工作表所在的目录(或该目录的父目录)中运行该uberjar。