预下载所有依赖项

新手上路,请多包涵

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

目前,所有依赖项都在 pom.xml 文件中定义,我们使用 mvn installmvn package 来构建项目。一些项目成员使用 uber jars,其他人使用 jars + dependencies 来执行。

预打包依赖的 jar 文件的最简单方法是什么,这样就无需从 Internet 下载,并且不会过多地改变我们当前的构建过程?

原文由 tsar2512 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 696
2 个回答

一个可能的解决方案是清除您的本地存储库,告诉 Maven 下载您项目的所有依赖项和插件依赖项并制作一个 ZIP 文件。

要清除本地存储库,只需删除文件夹 {user.home}/.m2/repository 。然后,您可以使用 dependency:go-offline 目标:

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

 mvn dependency:go-offline

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

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

原文由 Tunaki 发布,翻译遵循 CC BY-SA 3.0 许可协议

离线包部署

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

  1. 如答案中所述构建完整的依赖 JAR 文件
  2. 将 JAR 复制到您想要的目标机器
  3. 从那里运行以下命令
   mvn install:install-file -Dfile=<path-to-file>

这将在目标机器的 Maven 存储库中安装依赖项。这是完全离线

原文由 Thanga 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏