[英]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.