如何在lein项目中编译不在“ src”下的clojure模块

时间:2018-11-15 15:10:39

标签: clojure leiningen

我使用lein新应用程序打了个招呼,所以我有这个结构

.
└── src
    └── hello
        └── core.clj
└── project.clj
└── test
└── ..

我想在项目中添加另一个帮助程序模块,这样我就可以在测试和src模块中使用代码,就像我希望它与src目录解耦一样。

所以我添加了一个助手模块

.
└── src
    └── hello
        └── core.clj
└── project.clj
└── test
└── helpers
    └──hello
         └── helpers.clj

如何更改我的project.clj文件以进行lein run的编译。 lein run无法编译,并且在我尝试使用helpers名称空间时引发以下错误。

  

线程“ main”中的异常java.lang.ClassNotFoundException:   hello.helpers,编译:(hello / core.clj:7:3)

我的project.clj文件看起来像默认文件:

(defproject hello "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.8.0"]]
  :main ^:skip-aot hello.core
  :target-path "target/%s"
  :profiles {:uberjar {:aot :all}})

但是在IDE(IntelliJ)中,它在REPL中可以正常工作,而不会引发类未找到异常。

1 个答案:

答案 0 :(得分:2)

添加

   lower1 upper1 lower2 upper2 color value1 value2 thing1 thing2
1:     12     20     12     20  <NA>     NA     NA     NA     NA
2:     12     20     12     20  <NA>     NA     NA     NA     NA
3:      3     20      3     20   red      4      4      5      5
4:      2      4      2      4  <NA>     NA     NA     NA     NA

到您的:source-paths ["src" "helpers"] 文件。