如何解决如何嵌套lein项目?
我有一个名为foo的lein项目。 Foo有一个资源目录,其中有一个名为bar的lein项目,它有自己的project.clj。
foo的project.clj:
Parcelable
请注意,我添加了源路径“ resources / bar / src”,以便可以在foo中使用bar的名称空间。
bar的project.clj:
(defproject foo "0.1.0"
:description "Instaboi's drone autonomy software"
:dependencies [[org.clojure/clojure "1.10.0"]
[nrepl "0.8.0"]
]
:repl-options {:init-ns foo.core}
:plugins [[cider/cider-nrepl "0.25.3"]
[lein-environ "1.2.0"]]
:source-paths ["src" "resources/bar/src"]
)
请注意,bar使用中间件来(defproject bar "1.47-SNAPSHOT"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:profiles {:dev {:dependencies [[criterium "0.4.5"]]}}
:java-source-paths ["java"]
:plugins [[lein-tools-deps "0.4.5"]]
:middleware [lein-tools-deps.plugin/resolve-dependencies-with-deps-edn]
:lein-tools-deps/config {:config-files [:install :user :project]})
,因此bar的根文件夹中有一个deps.edn:
resolve-dependencies-with-deps-edn
问题是这些依赖项未加载,因为它们不存在于foo的依赖项中。在foo中使用bar的模块时,这会导致错误。在运行repl或在foo的根目录中创建jar时,如何确保也加载了bar项目?
解决方法
我将单独构建/安装栏。我相信您可以在Foo的project.clj中使用lein profiles来实现这一目标。这样,您以后就可以将其添加为Foo中的依赖项。
我建议这样做,因为您似乎只需要访问Foo中bar的名称空间,并且没有明确的理由将它们耦合。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。