导出 Maven 依赖项并维护存储库文件夹结构

AbV*_*Vog 4 maven-3 maven maven-dependency-plugin

我想知道是否可以导出/复制使用 Maven 管理的项目的依赖项,同时维护本地存储库中采用的文件夹结构。

我需要的根源是我在本地存储库(~8GB)中积累了近十年的大量工件。我不再处理以前任务中那些吸引了大部分工件的旧项目,现在,我需要将单个项目(约 650MB 工件)所需的内容移动到另一台计算机上。我不能只是设置另一台计算机再次下载工件,因为在以前的分配中,许多工件是从本地 Nexus 代理检索的。此外,我没有这些工件的源代码,所以我不能只安装它们。

dependency:copy-dependencies 没有用,因为所有的工件都被简单地转储到一个文件夹中,而不是说 .m2\repository\mysql\mysql-connector-java\5.1.38\mysql-connector-java-5.1.38.jar

我相信我的问题也可以改写为“如何从本地 Maven 存储库中提取仅与一个特定项目相关的存储库子集?”

A_D*_*teo 5

正如您所提到的,您实际上可以使用Maven Dependency Plugin及其copy-dependencies目标。

你实际上错过的是它的useRepositoryLayout选项

将每个工件放在与默认存储库相同的目录布局中。
例如:/outputDirectory/junit/junit/3.8.1/junit-3.8.1.jar。

  • 类型:布尔值。
  • :2.0-alpha-2。
  • 要求:否。
  • 用户属性:mdep.useRepositoryLayout。
  • 默认值:假。

因此,您可以执行 - 例如 - 以下内容:

mvn dependency:copy-dependencies -Dmdep.useRepositoryLayout=true \
    -DoutputDirectory=.m2/repository
Run Code Online (Sandbox Code Playgroud)