繁体   English   中英

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

[英]How to compile clojure modules that are not under “src” in a lein project

我使用lein new app hello构建了我的项目,所以我有这个结构

.
└── 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无法编译并抛出以下错误。

线程“主”中的异常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中正常工作,而不会引发未找到的类异常。

:source-paths ["src" "helpers"]

到您的project.clj文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM