LicenseToolsPlugin
This repository is a replacement project of cookpad/license-tools-plugin written with kotlin
Setup
Recommend
plugins {
id "com.cookpad.android.plugin.license-tools" version "${latest_version}"
}
If you use legacy gradle project
buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "gradle.plugin.com.cookpad.android.plugin:plugin:${latest_version}"
}
}
apply plugin: "com.cookpad.android.plugin.license-tools"
Learn how to apply plugins to subprojects
Gradle tasks
This Plugin provite to check library licenses and generate license pages.
./gradlew checkLicensesto check licenses in dependencies./gradlew updateLicensesto update library information filelicenses.yml./gradlew generateLicensePageto generate a license pagelicenses.html./gradlew generateLicenseJsonto generate a license json filelicenses.json
How To Use
Run the checkLicenses task
You will see the following messages by ./gradlew checkLicenses:
# Libraries not listed:
- artifact: androidx.annotation:annotation:+
name: Android Support Library Annotations
copyrightHolder: #COPYRIGHT HOLDER#
license: The Apache Software License, Version 2.0
url: http://developer.android.com/tools/extras/support-library.html
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
- artifact: io.reactivex.rxjava2:rxjava:+
name: rxjava
copyrightHolder: #COPYRIGHT HOLDER#
license: The Apache Software License, Version 2.0
url: https://github.com/ReactiveX/RxJava2
Add library licenses to app/licenses.yml
Then, Create app/licenses.yml, and add libraries listed the above with required fields:
- artifact: androidx.annotation:annotation:+
name: Android Support Library Annotations
copyrightHolder: Google Inc.
license: The Apache Software License, Version 2.0
url: http://developer.android.com/tools/extras/support-library.html
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
- artifact: io.reactivex.rxjava2:rxjava:+
name: rxjava
copyrightHolder: Netflix, Inc.
license: The Apache Software License, Version 2.0
url: https://github.com/ReactiveX/RxJava2
You can use wildcards in artifact names and versions.
You'll know the Android support libraries are grouped in androidx.annotation:annotation so you use androidx.annotation:annotation:+:+ here.
Then, ./gradlew checkLicenses will passes.
Generate licenses.html by the generateLicensePage task
./gradlew generateLicensePage generates app/src/main/assets/licenses.html.
This plugin does not provide Activity nor Fragment to show licenses.html. You should add it by yourself.
example/MainActivity is an example.
Configuring the plugin
Use licenseTools in your build.gradle to add some optional configuration.
For example:
licenseTools {
outputHtml = "licenses_output.html"
}
Available configuration fields:
| Field name | Default value | Description |
|---|---|---|
licensesYaml |
"licenses.yml" |
The name of the licenses yml file |
outputHtml |
"licenses.html" |
The file name of the output of the generateLicensePage task |
outputJson |
"licenses.json" |
The file name of the output of the generateLicenseJson task |
ignoredGroups |
[] (empty array) |
An array of group names the plugin will ignore (useful for internal dependencies with missing .pom files) |
ignoredProjects |
[] (empty array) |
An array of project names the plugin will ignore (To ignore particular internal projects like custom lint) |
DataSet Format
Required Fields
artifactname- Either
copyrightHolder,author,authorsornotice
Optional Fields
yearto indicate copyright yearsskipto skip generating license entries (for proprietary libraries)forceGenerateto force generate the output with arbitrary items. (Read this issue for more details.)- If some
pomdata is wrong, you can override some of them using this flag.
- If some
Sample
- artifact: androidx.annotation:annotation:+
name: Android Support Library Annotations
copyrightHolder: Google Inc.
license: The Apache Software License, Version 2.0
url: http://developer.android.com/tools/extras/support-library.html
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
- artifact: androidx.appcompat:appcompat:+
name: Android AppCompat Library v7
copyrightHolder: Google Inc.
license: The Apache Software License, Version 2.0
url: http://developer.android.com/tools/extras/support-library.html
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
- artifact: com.github.bumptech.glide:glide:+
name: Glide
copyrightHolder: Sam Judd
license: Simplified BSD License
url: https://github.com/bumptech/glide
licenseUrl: http://www.opensource.org/licenses/bsd-license
