0

前几天我将一个项目部署到 Clojars,以便能够毫不费力地将其用作其他项目的依赖项。今天我尝试使用它,它说它无法找到文件(我们称之为文件grammar.ebnf)。这是一个描述语法的文件,然后slurp在我的一个 Clojure 模块中进行编辑。我将它作为一个单独的文件,只是为了将语法与使用语法的逻辑分开。我将它与其他源文件放在同一目录中

显然,它没有包含在 Clojars 的部署中。当我使用 .clj 文件进行部署时,如何确保该文件与 .clj 文件一起包含lein deploy clojars

编辑:见下面的评论

4

1 回答 1

0

请参阅此模板项目。您需要的是创建一个./resources目录,并将文件放入其中。这些文件将包含在项目的类路径中,在本地运行或在创建 JAR 文件后运行。

例如,我们可以制作一个文件resources/stuff.txt

> echo "happens" > resources/stuff.txt

并像这样访问它:

(ns tst.demo.core
  (:use tupelo.core tupelo.test)
  (:require
    [clojure.java.io :as io]
    [clojure.string :as str]))

(dotest
  (is= (str/trim (slurp (io/resource "stuff.txt")))
    "happens"))

结果

    > lein clean; lein test
    
    ------------------------------------------
       Clojure 1.10.2-alpha1    Java 14.0.1
    ------------------------------------------
    
    Testing tst.demo.core
    
    Ran 2 tests containing 1 assertions.
    0 failures, 0 errors.
于 2020-08-18T15:41:48.193 回答