首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java查找与哪个java源文件一起使用的jars

java查找与哪个java源文件一起使用的jars
EN

Stack Overflow用户
提问于 2012-08-15 21:13:22
回答 1查看 1.7K关注 0票数 4

我是我公司的一个新的配置经理,我正在启动一个项目来清理我们大部分的构建过程。

我们在一个颠覆项目中放置了大量的罐子。有些人将这些罐子复制到他们的项目中。其他人则在他们的项目上放置了一个SVN:External到这个目录。其他人在这些罐子里有一种复杂的复制方式。这是我们应该使用的唯一的罐子。

我要搬去艾薇也许去梅文。我已经设置了一个Maven存储库,并确定了这些jar的GroupId、ArtifactId和版本,并记录了如何通过Ivy和Maven配置访问所需的存储库。

我想查看所有项目的源文件,查找所有导入语句,并将这些导入与这些jars包含的所有类进行比较。

我想找到给定的一组源直接调用的所有jars。例如,如果一个jar包含:

代码语言:javascript
复制
import org.apache.commons.beanutils.*

我知道它需要commons-beanutils.jar (版本1.6)。我也知道它需要Common-logging.jar,但是我会让Maven和Ivy来处理这个问题。我只想告诉开发人员,当他们创建他们的pom.xmlivy.xml时,他们需要在他们的pom.xmlivy.xml文件中包含common-beanutils#common-beansutil#1.6

我知道这不会是一个完整的名单。我知道运行时需要jars,但不需要编译。我也知道有些类可以使用多个jars。我现在还可以让开发人员这样做:

代码语言:javascript
复制
import org.apache.commons.*;

会和几十个罐子相配却什么都不告诉我。(也许有一种方法可以找出Java源文件中实际使用的类)。

我可以编写一个Python或Perl脚本来完成这个任务,但我希望已经有了一些东西,可以节省我几个小时的工作。我知道TattleTale的JBoss,但文档似乎说它只适用于jars,并显示了jars之间的依赖关系等等。我只想知道我们的源代码正在调用什么jars,让Ivy和Maven处理更深层次的依赖关系。

有这样的工具吗?

附录

说得更具体点。这是个老工程。事实上,大约有50个项目。我们知道,一个特定的项目需要20个jars才能运行,而像TattleTail这样的工具可以遍历并向您展示整个数据分析。

但是,让我们从开发人员的角度来看它。我遇到了一个问题,我找到了一个开源项目来解决我的问题。我阅读了文档,编写了我的代码,并导入了我需要的类。我知道包含类的开源项目的jar,这是我所知道的几乎全部。

我想要做的是回到最初的开发人员的心态:我在这个项目中使用了这些类,我需要这5个jars。这5个jars可能还需要另外15个才能运行,这是Ivy/Maven现在将要处理的问题。我们知道程序需要的20个罐子。我只想要开发人员在代码中最初提到的5。

这是为了帮助开发人员编写他们的pom.xmlivy.xml。我不希望他们把所有的20个罐子都放进那个pom.xml或那个ivy.xml文件--只是他们需要的五个。

这只是一个起点。他们可能已经导入了com.foo.bar.bar.foo,这个类在foo-all.jarfoo-client.jarbar-talk.com中。开发人员将不得不决定他们的项目需要哪一个。

这是我们编程中的一个巨大的范式转变,但我们正在失去jars和版本的跟踪,并确保所有这些项目都能相互交流。使用Ivy/Maven将大大简化这一混乱。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-21 17:53:52

最后,塔特莱给了我第一级依赖项,这就是我构建ivy.xmlpom.xml文件所需要的。它偶尔会错过一两次,但否则效果会很好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11977409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档