优化 gradle 包装器的安装大小

Optimizing installation size for gradle wrapper

我们正在开发一个使用云 运行ner 的系统,我们拥有像 Spring + Gradle 和 Mongo.

这样的技术

系统是容器化的,运行s 在云上-运行 在 gcp 中。然而,gcp 对容器大小有 2gb 的硬性限制,我们正在努力适应,截至目前。

经过更深入的调查,我发现,我们使用的 gradle 包装器比我们需要的至少多下载了 170mb。

它包括以下-

  1. 它包含文档,运行通过包装器构建时不需要它。
  2. 解压后不会删除zip文件..

总计 270 MB,这对我们来说很大。我想知道的是,是否有任何包装器配置 OOTM 可以帮助我避免这些额外的文件被下载到我们的系统上?

对我们来说,这就是我们的目标。

  1. 虽然我们使用了 gradle 包装器,但我们也确保在机器上预先安装了相关的 gradle 包装器,这样当我们 运行 gradlew 命令时,我们不再下载了。
  2. 当您在构建映像时下载 gradle 包装器时,您可以在构建容器映像时自由地从文件系统中删除该文件。所以你可以腾出一些 space.
  3. 下一步是您可以压缩图像以删除所有不必要的图层。 How can i remove layers from my docker image?

您似乎使用了 Gradle 分发类型“全部”,其中包括源代码和 Gradle 文档(例如 IDE 支持 -- source ).

由于您 运行 云中的 Gradle 包装器,您可能不需要 IDE 支持:使用分发类型“bin”。至少在 Gradle(版本 7)的最新版本中这是默认设置,但您仍然可以明确地确保:

# gradle wrapper --gradle-version 7.0.2 --distribution-type bin

大小差异约为 200 MB:

# du -hs ~/.gradle/wrapper/dists/gradle-7.0.2-{all,bin}                      
438M    ~/.gradle/wrapper/dists/gradle-7.0.2-all
229M    ~/.gradle/wrapper/dists/gradle-7.0.2-bin

Gradle 仍然保留 zip 文件,因此您必须手动删除它。