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