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



      

Reply via email to