2016-03-14 60 views
1

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

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

dependency:copy-dependencies不会做的伎俩,因为所有的文物都在一个文件夹中简单地倾倒,而不必说.m2\repository\mysql\mysql-connector-java\5.1.38\mysql-connector-java-5.1.38.jar

我相信我的问题,也可以是“我怎样才能从我的本地仓库提取转述,只与一个特定项目相关的存储库的子集?“

+0

您是否拥有本地Nexus代理中的所有必需工件? – michaldo

+1

(你不需要源代码来安装依赖项,'install-file'在没有的情况下就可以正常工作) – eis

回答

0

您可以实际使用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 
0

如果你丢失了一些依赖,然后下载其它来源的依赖,并粘贴在你的.m2目录(本地Maven存储库)文件夹。