I have something working now that stops Ivy from cluttering up the output (but
doesn't disable it forever), but calling it a hack would be too kind. Below
are the relevant snippets:
// Outside of any tasks
import org.slf4j.LoggerFactory
import ch.qos.logback.classic.Logger
// Inside task setup that wants to check dependencies and do something
intelligent
task myTask {
def ch.qos.logback.classic.Logger ivyLogbackLogger
try {
// HACK: Turn off Ivy messages!!!!!!
ivyLogger = 'org.gradle.api.internal.artifacts.ivyservice.IvyLoggingAdaper'
ivySlf4jLogger = LoggerFactory.getLogger(ivyLogger)
ivyLogbackLogger = (ch.qos.logback.classic.Logger)ivySlf4jLogger
ivyLogbackLogger?.setLevel(ch.qos.logback.classic.Level.OFF)
// ... something that actually tries to resolve via Ivy .resolve(),
.asPath(), etc.
} catch (ResolveException re) {
// Adjust logic -- I'm actually setting a property for a later onlyIf {}
check
} finally {
ivyLogbackLogger?.setLevel(null)
}
}
-Spencer