预下载所有依赖项

2022-09-01 12:59:10

我需要将我们的 Maven 构建 Java 项目发布给远程 QA 团队。为此,我想下载所有依赖项,并发送它们,以便它们不需要下载它们。

目前,所有依赖项都在文件中定义,我们使用 或 来构建项目。一些项目成员使用uber jar,另一些使用jars +依赖项来执行。pom.xmlmvn installmvn package

预打包依赖的jar文件的最简单方法是什么,这样就不会从互联网上下载,也不会对我们当前的构建过程进行太大的更改?


答案 1

一个可能的解决方案是清除你的本地存储库,告诉Maven下载项目的每个依赖项和插件依赖项,并创建一个ZIP。

要清除本地存储库,您只需删除文件夹即可。然后,您可以使用依赖关系:转到脱机目标:{user.home}/.m2/repository

解决所有项目依赖项(包括插件和报告及其依赖项)的目标。

mvn dependency:go-offline

这将下载项目所依赖的所有内容,并确保在以后的版本中不会下载任何内容。

然后,您只需制作一个ZIP并将其发送给您的Q / A团队即可。他们需要将其解压缩到自己的内部才能构建项目。{user.home}/.m2/repository{user.home}/.m2/repository


答案 2

脱机包部署

可以通过创建具有完整依赖项的独立 jar 文件来完成您的要求。您可以将其移植到任何地方,请参阅 https://stackoverflow.com/a/35359756/5678086

  1. 按照答案中所述构建完整的依赖项JAR文件
  2. 将 JAR 复制到所需的目标计算机
  3. 从那里运行以下命令

    mvn install:install-file -Dfile=<path-to-file>
    

这将在目标计算机的 maven 存储库中安装依赖项。这是完全脱机的


推荐