2017-02-23 59 views
0

场景: 新的企业策略禁止使用公共存储库。对于每个使用的依赖关系(这是很多的),我们必须向devOps团队提供工件组,id,版本以及它来自哪个存储库。在maven中找到每个依赖项的原始存储库

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

我能做些什么:

我可以使用 MVN依赖性:清单-DoutputAbsoluteArtifactFilename =真-DprependGroupId 每个项目获得神器组ID,版本。

和MVN依赖性:列表库获得该项目

使用的存储库缺少了什么:

知道哪个神器从哪个库。

在此先感谢

回答

0

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

  1. 删除您当地的回购内容。
  2. 运行下面的命令,

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

这将ATLEAST给你的映射。

+0

**很好的答案**。谢谢。根据每个依赖项的组ID,我最终手动确定了回购站(像700,花了一些时间> _ <)。如果开发工具令人讨厌,我会继续这样做。 –

0

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

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

+0

非常感谢。如果devOps只有一些依赖关系存在问题,我一定会采用这种方式。你知道如何制作REST查询吗?我有curl和wget,但其他工具也可以。 –

相关问题