There is no scope that does exactly what you want here; test
is the best available option.
A test-runtime
scope has been requested before (Re: Need for a test-runtime scope?) and the suggested workaround is exactly the ignoreNonCompile
configuration you’ve already discovered.
dependency:analyze
already has some limitations (“some cases are not detected (constants, annotations with source-only retention, links in javadoc)”). You may have to accept that any test
-scope dependencies that it warns against are false positives.
(You could split the definition of your tests into a separate module, which would have no slf4j
implementation dependencies, then run them in another module. I don’t think that would be worth it.)