| Forbidden API rules |
| =================== |
| |
| Uwe's excellent forbidden API checker is applied as part of 'check' |
| task. The rules for each project are sourced dynamically based on the |
| actual set of dependencies. |
| |
| If a given project has a dependency on an artifact called "foo.bar:baz" |
| then all of these rule files will be applied (all paths relative |
| to: gradle/validation/forbidden-apis/). |
| |
| defaults.all.txt |
| defaults.[project].txt |
| foo.bar.baz.all.txt |
| foo.bar.baz.[project].txt |
| |
| Note that the "defaults" can't reference any JARs other than Java's |
| runtime. |
| |
| Example |
| ------- |
| |
| We'd like to prevent people from using Guava's |
| com.google.common.base.Charsets class. The rule would be: |
| |
| @defaultMessage Use java.nio.charset.StandardCharsets instead |
| com.google.common.base.Charsets |
| |
| and we would place this rule in this file: |
| |
| gradle/validation/forbidden-apis/com.google.guava.guava.all.txt |
| |
| From now on, if *any* module depends on this library, it will |
| automatically pick up the rule and enforce it. |