我试图了解是否可以导出/复制使用Maven管理的项目的依赖项,同时维护本地存储库中采用的文件夹结构。
我需要的根源是我在本地存储库(~8GB)中积累了近十年的很多工件。我不再处理以前分配的那些旧项目,这些项目吸引了大部分工件,现在,我需要将一个项目(约650MB的工件)所需的内容移动到另一台计算机上。我不能再设置另一台计算机再次下载工件,因为许多这些工件是在之前的任务中从本地Nexus代理检索的。此外,我没有这些工件的源代码,因此我无法安装它们。
dependency:copy-dependencies
没有做到这一点,因为所有工件只是简单地转储到一个文件夹中,而不是说.m2\repository\mysql\mysql-connector-java\5.1.38\mysql-connector-java-5.1.38.jar
我相信我的问题也可以改为“如何从我的本地Maven存储库中提取与一个特定项目相关的存储库子集?”
答案 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本地存储库)文件夹中。