我有两个使用不同的依赖项/交付工具管理的Java项目,并且想知道所需依赖项的区别。

我在VM中使用Linux(CentOS),但可以接受Windows解决方案。

第一个原始项目是基于Ant脚本的,并且依赖项在此处进行了硬编码,所有必需的库都位于lib文件夹中,然后build.properties具有映射alias=name-version.jar

第二个项目是基于第一个项目的Maven项目,但是我们添加并更新了一些依赖项。

我的目标是找到一个工具(如果存在的话)来制作类似于以下内容的报告:

项目2-新的依赖项:


Joda Time版本2.1
Google GSON版本3.2
Apache CXF 2.5
DWR版本3.2-beta

项目2-更新的依赖项:


Apache Commons lang从1.2到1.6
Apache Commons IO从2.1到2.4
slf4j从2.4到2.6

项目2-已删除依赖项


Log4j 1.2版
Castor 2.1版

注意:该版本并不反映实际情况,仅是为了举例说明。

#1 楼

由于没有人推荐这种工具(三个月之内),因此我将建议使用现有工具的另一种方法。

步骤1:提取依赖项。


对于Any项目,可以是lslib目录,也可以编写一个简单的脚本从build.properties文件中提取列表。
对于Maven项目,可以从mvn dependency:list的输出中提取列表。 (有关示例,请参阅此博客文章。)

步骤2:对列表进行排序

步骤3:使用diff命令查看差异。

评论


让我添加这个包:tattletale.jboss.org -它将在lib目录中的每个jar中查找详细信息。

–鲍勃·达格利什(Bob Dalgleish)
14年8月17日在11:54

谢谢,最终这是我应用的“手动”解决方案。也要感谢Linux bash utils,它比Windows下的实用程序有用得多。 (Sed和Awk是如此强大)

–рüффп
15年11月27日在23:22