license:add-third-party

Full name:

org.kuali.maven.plugins:license-maven-plugin:1.6.4:add-third-party

Description:

Goal to generate the third-party license file.

This file contains a list of the dependencies and their licenses. Each dependency and it's license is displayed on a single line in the format
  (<license-name>) <project-name> <groupId>:<artifactId>:<version> - <project-url>
It will also copy it in the class-path (says add the generated directory as a resource of the build).

Attributes:

  • Requires a Maven project to be executed.
  • Requires dependency resolution of artifacts in scope: test.
  • Since version: 1.0.
  • Binds by default to the lifecycle phase: generate-resources.

Required Parameters

Name Type Since Description
outputDirectory File 1.0 Directory where to generate files.
Default value is: ${project.build.directory}/generated-sources/license.
project MavenProject 1.0 The reacted project.
Default value is: ${project}.
thirdPartyFilename String 1.0 File where license information for third party dependencies gets stored
Default value is: THIRD-PARTY.txt.

Optional Parameters

Name Type Since Description
artifactLicenseMapping String 1.0 Location of a properties file mapping artifacts without a license to the license that should be used for them. This supports classpath notation and any other type of URL Spring 3.1 resource loading can understand. This properties file supports matching by groupId, groupId + artifactId, or groupId+artifactId+version.
Default value is: classpath:THIRD-PARTY.properties.
bundleThirdPartyPath String 1.0 The path of the bundled third party file to produce when generateBundle is on.

Note: This option is not available for pom module types.
Default value is: META-INF/${project.artifactId}-THIRD-PARTY.txt.
deployMissingFile boolean 1.0 Deploy the third party missing file in maven repository.
Default value is: true.
doGenerateMissing boolean 1.0 Controls if THIRD-PARTY.properties gets created or not
Default value is: false.
encoding String 1.0 Encoding used to read and writes files.

Note: If nothing is filled here, we will use the system property file.encoding.
Default value is: ${project.build.sourceEncoding}.
excludedArtifacts String 1.0 A filter to exclude some ArtifactsIds
excludedGroups String 1.0 A filter to exclude some GroupIds
excludedScopes String 1.0 A filter to exclude some scopes.
Default value is: system.
failIfWarning boolean 1.0 A flag to fail the build if at least one dependency was detected without a license.
Default value is: false.
force boolean 1.0 To force generation of the third-party file even if every thing is up to date.
Default value is: false.
generateBundle boolean 1.0 A flag to copy a bundled version of the third-party file. This is usefull to avoid for a final application collision name of third party file.

The file will be copied at the bundleThirdPartyPath location.
Default value is: false.
groupByLicense boolean 1.0 A flag to change the grouping of the generated THIRD-PARTY file.

By default, group by dependencies.

If sets to true, the it will group by license type.
Default value is: false.
includeTransitiveDependencies boolean 1.0 Include transitive dependencies when downloading license files.
Default value is: true.
includedArtifacts String 1.0 A filter to include only some ArtifactsIds
includedGroups String 1.0 A filter to include only some GroupIds
includedScopes String 1.0 A filter to include only some scopes, if let empty then all scopes will be used (no filter).
licenseMerges List 1.0 To merge licenses in final file.

Each entry represents a merge (first license is main license to keep), licenses are separated by |.

Example :

<licenseMerges>
<licenseMerge>The Apache Software License|Version 2.0,Apache License, Version 2.0</licenseMerge>
</licenseMerges>
</pre>

missingFile File 1.0 The file where to fill the license for dependencies with unknown license.
Default value is: src/license/THIRD-PARTY.properties.
useMissingFile boolean 1.0 A flag to use the missing licenses file to consolidate the THID-PARTY file.
Default value is: false.
useRepositoryMissingFiles boolean 1.0 Load from repositories third party missing files.
Default value is: true.
verbose boolean 1.0 Flag to activate verbose mode.

Note: Verbose mode is always on if you starts a debug maven instance (says via -X).
Default value is: ${maven.verbose}.

Parameter Details

artifactLicenseMapping:

Location of a properties file mapping artifacts without a license to the license that should be used for them. This supports classpath notation and any other type of URL Spring 3.1 resource loading can understand. This properties file supports matching by groupId, groupId + artifactId, or groupId+artifactId+version.
  • Type: java.lang.String
  • Since: 1.0
  • Required: No
  • Expression: ${license.artifactLicenseMapping}
  • Default: classpath:THIRD-PARTY.properties

bundleThirdPartyPath:

The path of the bundled third party file to produce when generateBundle is on.

Note: This option is not available for pom module types.
  • Type: java.lang.String
  • Since: 1.0
  • Required: No
  • Expression: ${license.bundleThirdPartyPath}
  • Default: META-INF/${project.artifactId}-THIRD-PARTY.txt

deployMissingFile:

Deploy the third party missing file in maven repository.
  • Type: boolean
  • Since: 1.0
  • Required: No
  • Expression: ${license.deployMissingFile}
  • Default: true

doGenerateMissing:

Controls if THIRD-PARTY.properties gets created or not
  • Type: boolean
  • Since: 1.0
  • Required: No
  • Expression: ${license.doGenerateMissing}
  • Default: false

encoding:

Encoding used to read and writes files.

Note: If nothing is filled here, we will use the system property file.encoding.
  • Type: java.lang.String
  • Since: 1.0
  • Required: No
  • Expression: ${license.encoding}
  • Default: ${project.build.sourceEncoding}

excludedArtifacts:

A filter to exclude some ArtifactsIds
  • Type: java.lang.String
  • Since: 1.0
  • Required: No
  • Expression: ${license.excludedArtifacts}

excludedGroups:

A filter to exclude some GroupIds
  • Type: java.lang.String
  • Since: 1.0
  • Required: No
  • Expression: ${license.excludedGroups}

excludedScopes:

A filter to exclude some scopes.
  • Type: java.lang.String
  • Since: 1.0
  • Required: No
  • Expression: ${license.excludedScopes}
  • Default: system

failIfWarning:

A flag to fail the build if at least one dependency was detected without a license.
  • Type: boolean
  • Since: 1.0
  • Required: No
  • Expression: ${license.failIfWarning}
  • Default: false

force:

To force generation of the third-party file even if every thing is up to date.
  • Type: boolean
  • Since: 1.0
  • Required: No
  • Expression: ${license.force}
  • Default: false

generateBundle:

A flag to copy a bundled version of the third-party file. This is usefull to avoid for a final application collision name of third party file.

The file will be copied at the bundleThirdPartyPath location.
  • Type: boolean
  • Since: 1.0
  • Required: No
  • Expression: ${license.generateBundle}
  • Default: false

groupByLicense:

A flag to change the grouping of the generated THIRD-PARTY file.

By default, group by dependencies.

If sets to true, the it will group by license type.
  • Type: boolean
  • Since: 1.0
  • Required: No
  • Expression: ${license.groupByLicense}
  • Default: false

includeTransitiveDependencies:

Include transitive dependencies when downloading license files.
  • Type: boolean
  • Since: 1.0
  • Required: No
  • Default: true

includedArtifacts:

A filter to include only some ArtifactsIds
  • Type: java.lang.String
  • Since: 1.0
  • Required: No
  • Expression: ${license.includedArtifacts}

includedGroups:

A filter to include only some GroupIds
  • Type: java.lang.String
  • Since: 1.0
  • Required: No
  • Expression: ${license.includedGroups}

includedScopes:

A filter to include only some scopes, if let empty then all scopes will be used (no filter).
  • Type: java.lang.String
  • Since: 1.0
  • Required: No
  • Expression: ${license.includedScopes}

licenseMerges:

To merge licenses in final file.

Each entry represents a merge (first license is main license to keep), licenses are separated by |.

Example :

<licenseMerges>
<licenseMerge>The Apache Software License|Version 2.0,Apache License, Version 2.0</licenseMerge>
</licenseMerges>
</pre>
  • Type: java.util.List
  • Since: 1.0
  • Required: No

missingFile:

The file where to fill the license for dependencies with unknown license.
  • Type: java.io.File
  • Since: 1.0
  • Required: No
  • Expression: ${license.missingFile}
  • Default: src/license/THIRD-PARTY.properties

outputDirectory:

Directory where to generate files.
  • Type: java.io.File
  • Since: 1.0
  • Required: Yes
  • Expression: ${license.outputDirectory}
  • Default: ${project.build.directory}/generated-sources/license

project:

The reacted project.
  • Type: org.apache.maven.project.MavenProject
  • Since: 1.0
  • Required: Yes
  • Default: ${project}

thirdPartyFilename:

File where license information for third party dependencies gets stored
  • Type: java.lang.String
  • Since: 1.0
  • Required: Yes
  • Expression: ${license.thirdPartyFilename}
  • Default: THIRD-PARTY.txt

useMissingFile:

A flag to use the missing licenses file to consolidate the THID-PARTY file.
  • Type: boolean
  • Since: 1.0
  • Required: No
  • Expression: ${license.useMissingFile}
  • Default: false

useRepositoryMissingFiles:

Load from repositories third party missing files.
  • Type: boolean
  • Since: 1.0
  • Required: No
  • Expression: ${license.useRepositoryMissingFiles}
  • Default: true

verbose:

Flag to activate verbose mode.

Note: Verbose mode is always on if you starts a debug maven instance (says via -X).
  • Type: boolean
  • Since: 1.0
  • Required: No
  • Expression: ${license.verbose}
  • Default: ${maven.verbose}