在Ivy中找到隐藏的依赖项

我正在使用Apache Ivy + IvyDE获取项目的依赖项,它们是:

         

源代码是Maven和JBoss(Hibernate)存储库。

正如您所看到的,我正在使用logback + SLF4J进行日志记录,但由于某种原因,Ivy也会下载log4j和slf4j-log4j,这会导致我的应用程序出现一些小问题。

有没有办法看到为什么会发生这种情况,看看上面哪个依赖项依赖于log4j? 我可以获得从Ivy / IvyDE生成的依赖图/树吗?

那么有没有办法防止这种情况发生?

我们有一个ant目标,如下所示:

       

然后它只是一个调用ant report ,Ivy将在给定目录中生成HTML报告。

看一下常春藤的常春藤文档:报告 。

编辑:

要防止包含这些工件/依赖项,可以在元素上尝试transitive="false" ,或使用 。 例如,我们使用Hibernate 3但不想拥有JTA 1.1 ,因此我们的ivy.xml这个: 以排除所有传递JTA依赖项。

我想以Thomas的答案为基础,并建议在依赖项中添加“conf”声明:

    

这将减少对默认子集的传递依赖性,默认子集在Maven术语中是“编译”范围的jar。

如果没有此设置,您将获得所有依赖项,其中包含许多您不需要的可选项。