Tag: maven dependency plugin

仅将Maven依赖声明为测试运行时

将Maven依赖项声明为仅用于测试运行时(但不是测试编译)类路径的最佳方法是什么? 具体来说,我希望slf4j-api (一个日志外观)作为一个典型的编译范围依赖,但我希望slf4j-simple (适用于unit testing的slf4j-simple实现)仅在测试运行时类路径上(测试编译不需要它) )。 我一直这样做: org.slf4j slf4j-api org.slf4j slf4j-simple test 然而,这种缺点是dependency:analyze报告slf4j-simple为未使用,大概是因为它不需要编译: [WARNING] Unused declared dependencies found: [WARNING] org.slf4j:slf4j-simple:jar:1.7.7:test 我不能使用runtime依赖项,因为我不希望传递依赖传递(例如,所以下游依赖项可以使用log4j等)。 我尝试使用optional=true runtime ,但这会产生相同的警告。 (注意我也可以为依赖插件设置ignoreNonCompile ,但这似乎是一个非常生硬的工具,可以隐藏其他潜在的问题。)

在maven依赖项中显示省略的版本:树?

在Eclipse中,当我转到Maven Dependency Hierarchy页面时,我得到输出,指出导致版本被忽略的冲突: 但是,如果我使用dependency:tree ,那就省略了,我只看到实际使用的evrsions: | +- commons-httpclient:commons-httpclient:jar:3.1:compile | +- commons-codec:commons-codec:jar:1.4:compile | +- commons-io:commons-io:jar:2.4:compile | +- commons-net:commons-net:jar:3.1:compile | +- javax.servlet:servlet-api:jar:2.5:compile 后来实际引用的版本…… +- commons-collections:commons-collections:jar:3.1:compile 有没有办法获得依赖:树输出省略冲突的版本? 谢谢!