我有一个由多个web应用程序(war)和库(jar)组成的系统。它们都在使用maven,并在我的控制下(源代码,在Nexus中构建的工件,.)。假设应用程序A直接使用库L1,间接使用L2 (它来自L1)。我可以很容易地从应用程序中自上而下地检查依赖树,使用maven的依赖项: tree或图:project plugins。但我该怎么查,谁在用我的图书馆?从我的例子中,我想知道,A是使用L1的唯一应用程序(或库),L2是从L1和其他应用程序中使用的,假设B。是否有用于maven或nexus的插件,还是应该为此编写一些脚本?你有什么建议?
发布于 2013-10-25 05:14:05
如果您希望在存储库级别上实现这一点,则Apache Archiva有一个在项目信息下面列出的“由”特性。

。
这类似于mvnrepository.com在工件描述的“使用”部分下列出的内容。
不幸的是,Nexus似乎没有提供类似的功能。
现在,我想只为它维护另一个存储库将是一件很麻烦的事情,但是它可能比其他一些答案更容易,比如为Nexus编写一个插件。我相信Archiva可以配置为代理其他存储库。
更新
事实上,还有一个Nexus插件来实现“使用”特性。
发布于 2013-10-16 17:22:48
据我所知,没有任何东西是作为开源工具存在的。您可以编写一个Nexus插件,通过迭代所有pom并分析这些插件来遍历回购并检查您的组件在所有其他组件中的使用情况。不过,这将是一项相当繁重的任务,因为它必须查看所有组件并解析所有poms。
以类似的方式,您可以使用其他工具在本地存储库上执行此操作。但是,解析回购管理器的内容可能更有意义,而不是本地存储库。
发布于 2013-10-15 23:35:20
我不认为有什么方法可以做到这一点。话虽如此,还是有办法做到这一点或类似的事情。下面是几个例子:
grep“。这听起来有点不太好(当然也说明了显而易见的问题),但我们经常使用这种方法https://stackoverflow.com/questions/19392236
复制相似问题