【问题标题】:Can I start Gorilla REPL from an uberjar?我可以从 uberjar 启动 Gorilla REPL 吗?
【发布时间】:2018-09-19 19:47:57
【问题描述】:

我正在玩这个由 Gorilla 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,当我将工作表(以及数据、资源……如果需要)放入同一个目录时,一切正常。

【问题讨论】:

    标签: clojure


    【解决方案1】:

    Gorilla 通常通过 lein-gorilla 插件运行,因此不是 uberjar 的一部分。 如果你真的想创建一个包含 gorilla repl 依赖的包,那么你需要手动将这个功能添加到你的项目中。

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

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

    但是请注意,您需要从您的圣公会工作表所在的目录(或此类目录的父目录)运行该 uberjar。

    【讨论】:

      猜你喜欢
      • 2011-04-07
      • 2013-04-04
      • 1970-01-01
      • 1970-01-01
      • 2013-12-12
      • 2016-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多