clojure - 如何在 lein 项目中编译不在“src”下的 clojure 模块
问题描述
我使用 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
当我尝试要求助手命名空间时,不会编译并引发以下错误。
线程“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 中运行良好,不会抛出未找到类的异常。
解决方案
添加
:source-paths ["src" "helpers"]
到你的project.clj
文件。
推荐阅读
- c# - Azure Function 需要 hosts.json 日志记录,以便 Serilog 在日志流中工作
- java - Hibernate Criteria API 返回数据和子查询
- reactjs - 如何使用tailwind css动态更改下一个js中的边框颜色?
- memory - JavaScript 堆内存不足 - ng build
- java - 使用线程追加到文件仅在调试模式下同时工作
- c# - .NET Framework 4.8 中来自 AesCryptoServiceProvider 的 PlatformNotSupportedException
- unity3d - 为什么 Vision Lib 对我的 3d Modell 的跟踪不起作用并且相机的位置总是改变?
- c++ - 如何使用 MinGW 编译和使用库?
- javascript - 使用 getBoundingClientRect 保存和恢复元素位置不起作用
- dataweave - Dataweave 多级动态选择器