如何查找Java类的所有引用(即依赖项,传入耦合)?

时间:2014-01-31 14:06:21

标签: java dependencies

使用Eclipse,我可以选择一个类并列出所有引用( Ctrl + Shift + G )。我正在寻找一种机制,让整个开发团队从一个中心位置获取相同的引用列表,例如SonarQube服务器。
当我深入研究SonarQube上的课程时,它向我展示了传入耦合的数量。我怎样才能知道它们是什么?我知道Sonar需要大量的时间/空间来生成这种报告,但也许有一个插件可以根据请求计算(根据Jenkins工作的执行)。

可用于列出给定代码库中Java类型的依赖关系(传入耦合)的解决方案的任何建议都会有所帮助。

1 个答案:

答案 0 :(得分:1)

经过长时间的搜索,我们发现,试验,配置,并且刚刚为我们整个Java开发组织推出了解决此问题的解决方案。以下是解决方案的摘要:

  • 我们有几个java项目,大致分为libs和(web)应用程序。
  • 应用程序可以使用不同的库。挑战是在我们的整个代码库中找到我们的一个库中给定类/方法/构造函数的所有调用者。
  • 我们使用持续集成工具(Jenkins),每周一次从主干中构建所有库和应用程序(一种连续交付每周部署)。
  • 我们配置了运行此每周部署的作业,将所有生成的jar / war / ear文件复制到特定的服务器计算机。
  • 在该服务器上,我们安装了Dependency Finder tool。这个惊人的免费工具是解决方案的关键。它可以从已编译的代码中解析并提取所有依赖项(例如,在jar文件中)。然后,用户可以向工具查询传出(出站)和传入(入站)依赖关系。大多数工具只是给你传出依赖。
  • 在该服务器上,我们自动运行一个脚本,该脚本调用Dependency Finder来处理(即,从所有依赖项中提取所有依赖项)所有jar文件在它们每周生成一次后不久。处理整个代码库只需不到一个小时。
  • 在该机器上,我们还向本地Tomcat部署了Dependency Finder附带的Web应用程序(战争)。 (Dependency Finder附带GUI(Swt)客户端,命令行版本和Web UI版本。
  • 我们与所有开发人员共享了Dependency Finder Web界面的URL。
  • 使用网络用户界面,任何人都可以快速指定查询。要查询类中给定方法的所有入站依赖关系大约需要20秒。