1

通常 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)

有人知道如何识别它们吗?

4

0 回答 0