在maven中找到每个依赖项的原始存储库

在maven中找到每个依赖项的原始存储库,maven,repository,dependency-management,Maven,Repository,Dependency Management,情景: 新的企业策略禁止使用公共存储库。对于使用的每个依赖项(很多),我们必须向devOps团队提供工件组、id、版本以及它来自哪个存储库 我们在代码库中使用了多个外部存储库。由于所有工件现在都在本地存储库中,我们不知道它们来自何处 我能做的是: 我可以用 mvn依赖项:list-doutputabsolutionartifactfilename=true-DprependGroupId 在每个项目上获取工件组、id和版本 和mvn依赖关系:列出存储库以获取该项目中使用的存储库 缺少什么: 知道

情景: 新的企业策略禁止使用公共存储库。对于使用的每个依赖项(很多),我们必须向devOps团队提供工件组、id、版本以及它来自哪个存储库

我们在代码库中使用了多个外部存储库。由于所有工件现在都在本地存储库中,我们不知道它们来自何处

我能做的是:

我可以用 mvn依赖项:list-doutputabsolutionartifactfilename=true-DprependGroupId 在每个项目上获取工件组、id和版本

和mvn依赖关系:列出存储库以获取该项目中使用的存储库

缺少什么:

知道哪个工件来自哪个存储库


提前谢谢

我担心这在maven是不可能的。在maven 3.0.x之前,maven甚至没有跟踪远程存储库。在Maven 3.0.x之后,它转移到eclipse Ether。Eclipse Ether为每个具有存储库信息的存储库创建_remote.repositories文件。它包含在settings.xml文件中定义的存储库id。你可以

  • 删除您的本地回购内容
  • 运行以下命令

    find . -name _remote.repositories -exec grep "^[^#;]" {} \; > repo_info.txt
    

  • 这将至少为您提供映射

    列出您使用的所有外部存储库。此外,获取所有groupId、artifactId、version的列表(通过
    依赖项:list
    每个项目或扫描本地存储库)。现在,对于每个依赖项,通过REST询问外部存储库是否包含此依赖项


    如果您从MavenCentral开始,您很有可能在第一次尝试中找到您的依赖项

    回答得很好。非常感谢。最后,我根据每个依赖项的组id手动确定了回购协议(比如700,这需要一些时间)>\u非常感谢。如果devOps在几个依赖项上有问题,我肯定会选择这条路线。你知道如何进行REST查询吗?我有curl和wget,但任何其他工具都可以。