我定义了:profile.clj中的resource-paths包含一些特殊的jar(vertica jdbc)文件。然后我运行lein uberjar:尝试将该jar文件打包到独立的jar文件中,但是在我运行它并解压缩之后,我找不到vertica jdbc文件。
答案 0 :(得分:5)
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。
答案 1 :(得分:3)
另一种方法是添加到project.clj:
:repositories {"local" "file:lib"}
在项目中创建一个lib目录并在那里添加jar。
在:dependencies
中的project.clj
标记中添加lib引用。
此lib目录与.m2/repository
具有相同的结构,但它位于项目内部并且是项目的本地目录