This plugin allows to run the Apache RAT release audit tool, focused on licenses.
In your build.gradle(.kts)
file:
plugins {
id("org.nosphere.apache.rat") version "0.8.1"
}
The plugin registers a task named rat
that you can configure in your build.gradle(.kts)
file:
Kotlin DSL
tasks.rat {
// Use the default RAT license header matchers, defaults to `true`
addDefaultMatchers.set(false)
// Add custom substring license header matchers
substringMatcher("family", "category", "pattern-1", "pattern-2")
// Declare approved license families, if used, any non-declared family won't be approved
approvedLicense("MIT")
// Input directory, defaults to '.'
inputDir.set("some/path")
// List of Gradle exclude directives, defaults to ['**/.gradle/**']
excludes.add("**/build/**")
// RatTask 0.5.0+ implements PatternFilterable
exclude { it.file in configurations.someConf.files }
// Rat excludes file, one directive per line
excludeFile.set(layout.projectDirectory.file(".rat-excludes.txt"))
// XML, TXT and HTML reports directory, defaults to 'build/reports/rat'
reportDir.set(file("some/other/path"))
// Custom XSL stylesheet for the HTML report
stylesheet.set(file("custom/rat-html-stylesheet.xsl"))
// Fail the build on rat errors, defaults to true
failOnError.set(false)
}
Groovy DSL
rat {
// Input directory, defaults to '.'
inputDir.set(file("some/path"))
// List of Gradle exclude directives, defaults to ['**/.gradle/**']
excludes.add("**/build/**")
// Rat excludes file, one directive per line
excludeFile.set(layout.projectDirectory.file(".rat-excludes.txt"))
// XML, TXT and HTML reports directory, defaults to 'build/reports/rat'
reportDir.set(file("some/other/path"))
// Custom XSL stylesheet for the HTML report
stylesheet.set(file("custom/rat-html-stylesheet.xsl"))
// Fail the build on rat errors, defaults to true
failOnError.set(false)
// Prints the list of files with unapproved licences to the console, defaults to false
verbose.set(true)
}
You can run the rat
task by invoking Gradle:
gradle rat
If the project has a check
task, then the rat
task is automatically registered as dependent on the former.
When a Rat audit fails, a clickable URL of the HTML report will be printed out:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':rat'.
> Apache Rat audit failure - 35 unapproved licenses
See file:///path/to/build/reports/rat/index.html
Plugin | Min Java | Min Gradle | Max Gradle | Configuration Cache | Build Cache |
---|---|---|---|---|---|
0.8.1 |
1.8 |
6.0 |
8.x |
🟢 | 🟢 |
0.8.0 |
1.8 |
6.0 |
8.x |
🟡 | 🟢 |
0.7.1 |
1.8 |
6.0 |
7.x |
🟡 | 🟢 |
0.7.0 |
1.8 |
6.0 |
7.x |
🟡 | 🟢 |
0.6.0 |
1.6 |
4.7 |
6.x |
🟡 | 🟢 |
0.5.3 |
1.6 |
4.7 |
6.x |
🔴 | 🟢 |
0.5.2 |
1.6 |
4.7 |
6.x |
🔴 | 🟢 |
0.5.1 |
1.6 |
4.7 |
5.x |
🔴 | 🟢 |
0.5.0 |
1.6 |
4.7 |
5.x |
🔴 | 🟢 |
0.4.0 |
1.6 |
4.7 |
5.x |
🔴 | 🟢 |
0.3.1 |
1.6 |
2.14 |
4.x |
🔴 | 🟢 |
0.3.0 |
1.6 |
2.14 |
4.x |
🔴 | 🟢 |
0.2.0 |
1.6 |
2.14 |
4.x |
🔴 | 🟢 |
0.1.0 |
1.6 |
2.14 |
4.x |
🔴 | 🟢 |