通常 boot 将所有获取的依赖项存储在本地 maven 存储库中,该存储库位于~/.m2/repository
.
将环境变量设置BOOT_LOCAL_REPO
到另一个目录时,它只会使用选择的那个。
考虑一下:
boot new -n my -t app
cd my
mkdir repo
export BOOT_LOCAL_REPO=$(pwd)/repo
boot build
boot 现在将获取它需要的所有 jar 到本地repo
文件夹。
当第二次调用boot build
时,将没有任何东西可取,并且建筑物会立即启动。
我正在开发一个从引导文件生成 nix 表达式的引导任务。为此,我需要预测引导构建项目所需的所有依赖项。基本上,repo
文件夹的内容。这仅部分有效:在启动任务中使用以下内容时获得的最佳结果:
(def dependency-jars
(-> (boot.core/get-env)
:boot-class-path
(s/split #":")
(->> (filter #(re-find #"\.m2" %)))))
我会从外部获取那些罐子并将其存储在 repo 文件夹中。然而,当运行 boot build 时,仍然有一些 jars 会被 boot 获取。应该避免这种情况。例如,它发生在那些:
Retrieving oss-oparent-7.pom from https://repo1.maven.org/maven2/ (5k)
Retrieving shimdandy-parent-1.2.0.pom from https://repo1.maven.org/maven2/ (2k)
[..]
(实际上看起来 boot 只需要 poms 而不是那些文件的 jar)
有人知道如何识别它们吗?