license:add-third-party

Full name:

org.kuali.maven.plugins:license-maven-plugin:1.6.1: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.
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.
  • 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}