我想知道是否可以导出/复制使用 Maven 管理的项目的依赖项,同时维护本地存储库中采用的文件夹结构。
我需要的根源是我在本地存储库(~8GB)中积累了近十年的大量 Artifact 。我不再处理以前任务中那些吸引了大部分 Artifact 的旧项目,现在,我需要将单个项目(约 650MB Artifact )所需的内容移动到另一台计算机上。我不能只是设置另一台计算机再次下载 Artifact ,因为在以前的分配中,许多 Artifact 是从本地 Nexus 代理检索的。此外,我没有这些 Artifact 的源代码,所以我不能只安装它们。dependency:copy-dependencies
没有用,因为所有 Artifact 都被简单地转储到一个文件夹中,而不是说 .m2\repository\mysql\mysql-connector-java\5.1.38\mysql-connector-java-5.1.38.jar
我相信我的问题也可以改写为“如何从本地 Maven 存储库中提取仅与一个特定项目相关的存储库子集?”
最佳答案
您实际上可以使用 Maven Dependency Plugin和它的 copy-dependencies
目标,正如你所提到的。
你实际上错过的是它的 useRepositoryLayout
选项
Place each artifact in the same directory layout as a default repository.
example: /outputDirectory/junit/junit/3.8.1/junit-3.8.1.jar.
- Type: boolean.
- Since: 2.0-alpha-2.
- Required: No.
- User Property: mdep.useRepositoryLayout.
- Default: false.
因此,您可以执行 - 例如 - 以下内容:
mvn dependency:copy-dependencies -Dmdep.useRepositoryLayout=true \
-DoutputDirectory=.m2/repository
关于maven - 导出 Maven 依赖项并维护存储库文件夹结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35999109/