在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。
如果没有此设置,您将获得所有依赖项,其中包含许多您不需要的可选项。