1*74e88debSCassandra TargettForbidden API rules 2*74e88debSCassandra Targett=================== 3*74e88debSCassandra Targett 4*74e88debSCassandra TargettUwe's excellent forbidden API checker is applied as part of 'check' 5*74e88debSCassandra Targetttask. The rules for each project are sourced dynamically based on the 6*74e88debSCassandra Targettactual set of dependencies. 7*74e88debSCassandra Targett 8*74e88debSCassandra TargettIf a given project has a dependency on an artifact called "foo.bar:baz" 9*74e88debSCassandra Targettthen all of these rule files will be applied (all paths relative 10*74e88debSCassandra Targettto: gradle/validation/forbidden-apis/). 11*74e88debSCassandra Targett 12*74e88debSCassandra Targettdefaults.all.txt 13*74e88debSCassandra Targettdefaults.[project].txt 14*74e88debSCassandra Targettfoo.bar.baz.all.txt 15*74e88debSCassandra Targettfoo.bar.baz.[project].txt 16*74e88debSCassandra Targett 17*74e88debSCassandra TargettNote that the "defaults" can't reference any JARs other than Java's 18*74e88debSCassandra Targettruntime. 19*74e88debSCassandra Targett 20*74e88debSCassandra TargettExample 21*74e88debSCassandra Targett------- 22*74e88debSCassandra Targett 23*74e88debSCassandra TargettWe'd like to prevent people from using Guava's 24*74e88debSCassandra Targettcom.google.common.base.Charsets class. The rule would be: 25*74e88debSCassandra Targett 26*74e88debSCassandra Targett@defaultMessage Use java.nio.charset.StandardCharsets instead 27*74e88debSCassandra Targettcom.google.common.base.Charsets 28*74e88debSCassandra Targett 29*74e88debSCassandra Targettand we would place this rule in this file: 30*74e88debSCassandra Targett 31*74e88debSCassandra Targettgradle/validation/forbidden-apis/com.google.guava.guava.all.txt 32*74e88debSCassandra Targett 33*74e88debSCassandra TargettFrom now on, if *any* module depends on this library, it will 34*74e88debSCassandra Targettautomatically pick up the rule and enforce it. 35