gpt4 book ai didi

clojure - lein uberjar 没有将resource下的jar文件打包到最终的jar中

转载 作者:行者123 更新时间:2023-12-01 22:16:37 26 4
gpt4 key购买 nike

我在 profile.clj 中定义了 :resource-paths 以包含一些特殊的 jar (vertica jdbc) 文件。然后我运行 lein uberjar: 尝试将该 jar 文件打包到独立的 jar 文件中,但是在运行它并解压缩它之后,我找不到该 vertica jdbc 文件。

最佳答案

Leiningen 可以创建 jar 文件,但它获取这些文件的唯一位置是您的 Maven 存储库(位于计算机上的 .m2 目录下)。一旦您的特殊 jar 位于 Maven 中,您需要将其作为 project.clj 文件中的依赖项进行引用。

如果你的 jar 文件在 clojars 中,这将非常简单 - 只需放入一个依赖项 - lein 会将其提取到你的 Maven 存储库中。另一方面,如果它是您自己的源代码,您首先需要从该源代码项目的目录中lein install

但是我猜你的文件只是你拥有的一个 jar 文件,它不是 clojars 中的工件。在这种情况下,您可以使用此 Maven 命令将其安装到您的 Maven 存储库中(这里假设 my-deps.jar 是您的文件):

mvn install:install-file -Dfile=./my-deps.jar -DgroupId=my-deps -DartifactId=my-deps -Dversion=1.0.0 -Dpackaging=jar

然后,您可以将其作为 uberjar 项目 中的依赖项进行引用,然后lein uberjar

编辑 - 如果您不想使用原始 Maven 命令,请考虑使用这个 leiningen 库来为您抽象它们:https://github.com/kumarshantanu/lein-localrepo .

关于clojure - lein uberjar 没有将resource下的jar文件打包到最终的jar中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37140802/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com