通过类名查找 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 中依赖项的依赖项的选项?