Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/sbt/sbt-license-report

Report on licenses used in an sbt project.
https://github.com/sbt/sbt-license-report

sbt sbt-plugin scala

Last synced: 5 days ago
JSON representation

Report on licenses used in an sbt project.

Awesome Lists containing this project

README

        

# sbt-license-report

This plugin will allow you to report the licenses used in your projects. It requires 1.0.0+.

## Installation

Create a file in your project called `project/license.sbt` with the following contents:

addSbtPlugin("com.github.sbt" % "sbt-license-report" % "")

## Usage

> dumpLicenseReport

This dumps a report of all the licenses used in a project, with an attempt to organize them. These are dumped, by default, to the `target/license-reports` directory.

If you happen to be using a multi project sbt build, you can instead use `dumpLicenseReportAggregate` (which collects the results
from `aggregate` on the root project) or `dumpLicenseReportAnyProject` (which collects the results for all projects in the sbt build).
In either case the results will be merged into a single report file in a format that mirrors `dumpLicenseReport`.

### Check licenses

If you want to check that only certain licenses are used in a project, you can use

> licenseCheck

This ensures all licenses fall into one of the categories given by `licenseCheckAllow` which defaults
to a set of commonly allowed [OSS licenses](./src/main/scala/sbtlicensereport/SbtLicenseReport.scala#L173). You can also exclude dependencies from the license check by
providing `licenseCheckExclusions`.

## Configuration

The license report plugin can be configured to dump any number of reports, but the default report
can be controlled via the following keys:

import sbtlicensereport.license.{LicenseInfo, DepModuleInfo}

// Used to name the report file, and in the HTML/Markdown as the
// title.
licenseReportTitle := "Example Report"

// Add style rules to the report.
licenseReportStyleRules := Some("table, th, td {border: 1px solid black;}")

// The ivy configurations we'd like to grab licenses for.
licenseConfigurations := Set("compile", "provided")

// The order in which we find/choose licenses. You can add your own license
// detection here
licenseSelection := Seq(LicenseCategory.BSD, LicenseCategory.Apache)

// Attach notes to modules
licenseReportNotes := {
case DepModuleInfo(group, id, version) if group == "example" => "Made up artifact"
}

// Override the license information from ivy, if it's non-existent or
// wrong
licenseOverrides := {
case DepModuleInfo("com.jsuereth", _, _) =>
LicenseInfo(LicenseCategory.BSD, "BSD-3-Clause", "http://opensource.org/licenses/BSD-3-Clause")
}

// Want to exclude any artifacts from org.scala-lang organization. Note that transitive dependencies
// of a filtered DepModuleInfo will NOT get filtered out
licenseDepExclusions := {
case DepModuleInfo("org.scala-lang", _, _) => true
}

// Want to exclude any artifact named icu4j from the license check, but keep it in the reports.
licenseCheckExclusions := {
case DepModuleInfo(_, "icu4j", _) => true
}

# Releasing

This plugin uses [sbt-ci-release](https://github.com/sbt/sbt-ci-release). To
release a new version you just need to tag and push the new tag. That will
trigger CI to publish a new release.

# License

This software is under the [Apache 2.0 License](http://www.apache.org/licenses/LICENSE-2.0.html).