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

时间:2016-03-14 22:13:16

标签: maven maven-3 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存储库中提取与一个特定项目相关的存储库子集?”

2 个答案:

答案 0 :(得分:1)

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

您实际错过的是useRepositoryLayout选项

  

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

     
      
  • 输入:布尔值。
  •   
  • :2.0-alpha-2。
  •   
  • 必填:否。
  •   
  • 用户属性:mdep.useRepositoryLayout。
  •   
  • 默认:false。
  •   

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

mvn dependency:copy-dependencies -Dmdep.useRepositoryLayout=true \
    -DoutputDirectory=.m2/repository

答案 1 :(得分:0)

如果您遗漏了某些依赖项,请从其他源下载该依赖项并将其粘贴到.m2(maven本地存储库)文件夹中。