Does gradle use scopes in a similar way to maven?  I'm not sure why "provided" isn't the correct scope.  Whatever the correct one is, you want dagger-compiler to _not_ be in the transitive closure of the end binary.