【发布时间】:2020-10-31 05:15:42
【问题描述】:
我将Mill Build Tool 用于 Scala 项目,该项目使用 build.sc 文件列出项目中不同模块的特定依赖项。现在,我正在尝试对项目进行 docker 化,并希望在复制整个存储库之前在映像中安装依赖项。我想避免这种情况,这样每次我对源代码进行小的更改时都不必安装依赖项。有什么简单的方法可以做到这一点吗?谢谢!
这是 sbt 的类似帖子:sbt only fetch dependencies
【问题讨论】:
我将Mill Build Tool 用于 Scala 项目,该项目使用 build.sc 文件列出项目中不同模块的特定依赖项。现在,我正在尝试对项目进行 docker 化,并希望在复制整个存储库之前在映像中安装依赖项。我想避免这种情况,这样每次我对源代码进行小的更改时都不必安装依赖项。有什么简单的方法可以做到这一点吗?谢谢!
这是 sbt 的类似帖子:sbt only fetch dependencies
【问题讨论】:
更新答案:
从 mill 0.9.3 开始支持轻松准备离线工作。
详情请见pull request #951。
总之可以使用prepareOffline目标提前获取依赖。
mill __.prepareOffline
原答案:
目前没有简单直接的方法可以做到这一点。虽然你可以通过运行mill __.compileClasspath来强制解析所有编译依赖,但这也会触发所有模块间依赖的编译。
作为一种解决方法,您可以尝试生成 IntelliJ IDEA 项目文件,这也会触发依赖关系解析。之后您可以删除生成的目录(.idea/ 和.idea_modules/)。
从技术上讲,为此目的引入一个新的fetchIvyDeps 目标非常简单,但目前还没有。您可能想要打开功能请求或创建拉取请求。
【讨论】: