通过类名查找 pom 依赖项

Posted

技术标签:

【中文标题】通过类名查找 pom 依赖项【英文标题】:find pom dependencies by classname 【发布时间】:2010-11-25 05:05:36 【问题描述】:

如何通过类名找到依赖关系?

特别是,我想在我的项目中包含这个类 org.mortbay.jetty.testing.ServletTester,我该怎么做?您是如何找到答案的?

【问题讨论】:

IDE 的东西很酷,但我遇到了它不起作用的情况。有一个 maven 插件 会很酷。在项目依赖项中搜索类。像mvn search:class -Dclass=org.apache.cxf.transport.http_jetty.JettyHTTPTransportFactory 这样的东西。目前使用mvn jetty:run 运行我的应用程序,并且在 IDEA 中看不到此类,但是在调试器下运行时看到它已加载。 【参考方案1】:

Nexus 允许您按类名以及 GroupId、ArtifactId 和 Version 搜索工件。 Nexus 使用 Lucene 来索引工件。 Sonatype public repository 允许您搜索主要存储库。

在搜索字段中输入 org.mortbay.jetty.testing.ServletTester 并点击搜索图标。您不会得到任何结果,因为默认情况下 Nexus 会搜索关键字。要优化搜索以匹配类名,请选择搜索页面上关键字搜索标签旁边的向下箭头,然后选择类名搜索(见屏幕截图)。然后,您将找到匹配工件的列表。

(来源:sonatype.com)

Nexus 还集成了Opensearch,因此您可以将搜索添加到您的 Firefox / IE 7 搜索字段。有关设置的更多详细信息,请参阅Nexus book。

还有一个video 提供有关可用搜索选项的更多详细信息。

【讨论】:

有没有办法使用这种方法来搜索非 Nexus 公共存储库? 它适用于任何具有关联索引的公共存储库(大多数都这样做)。如果您有自己的 Nexus 服务器,您可以为公共 repo 设置代理存储库,然后使用其索引搜索该 repo 如果 maven 插件搜索的不是抽象依赖项,而是给定 POM 的依赖项,那就太棒了。用例:在有很多依赖项的项目中,找到给定类所属的依赖项。【参考方案2】:

使用http://www.jarvana.com/ 或使用 Intellij IDEA

【讨论】:

【参考方案3】:

从 6.1 版开始,Netbeans 可以add to pom.xml the dependency you need for a given class

【讨论】:

好... todo: 仔细看看 netbeans。但是,我一直在寻找更一般的答案。

以上是关于通过类名查找 pom 依赖项的主要内容,如果未能解决你的问题,请参考以下文章

为啥有排除 pom.xml / maven 中依赖项的依赖项的选项?

您是不是应该在您的 pom 中包含那些已经是您的某些依赖项的依赖项的依赖项?

为我的桌面集中 POM 依赖项

为啥 JavaMoney 依赖项是 POM 包?

AAR 包中的依赖

获取使用未声明的依赖关系[关闭]