我在获取 lobos 时遇到问题Clojure 的数据库迁移库,可以使用 maven-clojure-plugin 和 Maven 风格的项目结构。 Lobos 在 lobos.migrations
命名空间中查找数据库迁移。如果我布局莱宁根风格的项目:
src/
lobos/
migrations.clj
当通过 lein 运行时,lobos 在运行时正确找到 lobos.migrations
。但是,如果我以 Maven 风格布局项目:
src/
main/
clojure/
lobos/
migrations.clj
并使用maven-clojure-plugin
运行相同的测试,lobos不再找到lobos.migrations
。我认为这是 clojure-maven-plugin
的问题,但如果我通过 leon 运行,设置project.clj
中的源路径相应地:
:source-paths ["src/main/clojure"]
如果我将 lobos/
移回到 src/
下,并将 src/
添加为源路径:
:source-paths ["src" "src/main/clojure"]
然后 lobos 再次正确找到 lobos.migrations
。
我想使用 Maven 风格的项目布局(最终是 maven-clojure-plugin)。如何帮助 lobos 找到 lobos.migrations
?我哪里出错了?
最佳答案
lobos.migration/*src-directory*
变量指示用于查找 *migrations-namespace*
的源的源根。如果 lobos.migration/*reload-migrations*
为 true(默认值),则 lobos.migrations
在此源目录中查找迁移命名空间。默认为src/
,因此需要反弹到src/main/clojure
才能使用Maven风格的目录结构。
另一个值得注意的问题:从 JAR(即不是从源)运行时,您还必须禁用迁移命名空间的重新加载:
(binding [lobos.migration/*reload-migrations* false]
;; run migration
)
关于maven - 在 Maven 风格的项目布局中找不到 lobos.migrations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14960301/