【问题标题】:Export Maven dependencies and maintain repository folder structure导出 Maven 依赖并维护存储库文件夹结构
【发布时间】:2016-06-30 04:11:04
【问题描述】:

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

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

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

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

【问题讨论】:

  • 本地 Nexus 代理中是否有所有必需的工件?
  • (您不需要源代码来安装依赖项,install-file 没有也可以正常工作)

标签: maven maven-3 maven-dependency-plugin


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    正如您所提到的,您实际上可以使用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
    

    【讨论】:

      猜你喜欢
      • 2018-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-01
      • 2013-03-17
      • 1970-01-01
      • 2012-01-10
      • 1970-01-01
      相关资源
      最近更新 更多