slingfeature:apis-jar
Full name:
org.apache.sling:slingfeature-maven-plugin:1.9.2:apis-jar
Description:
Generates the APIs JARs for the selected feature files.
Attributes:
- Requires a Maven project to be executed.
- Requires dependency resolution of artifacts in scope:
test. - The goal is thread-safe and supports parallel builds.
- Binds by default to the lifecycle phase:
package.
Required Parameters
| Name | Type | Since | Description |
|---|---|---|---|
<features> |
File |
- |
Directory containing feature files Default: src/main/features |
<testFeatures> |
File |
- |
Directory containing test feature files. Default: src/test/features |
Optional Parameters
| Name | Type | Since | Description |
|---|---|---|---|
<apiClassifierMappings> |
Map<String,String> |
- |
Mapping for the feature classifier to a user defined name |
<apiJavadocResources> |
List<File> |
- |
Additional resources for the api javadoc jar |
<apiName> |
String |
1.5.6 |
Optional artifact name which is used instead of the generated artifact name to set some headers in the manifest. |
<apiRegionNameMappings> |
Map<String,String> |
- |
Mapping for an api region name to a user defined name |
<apiRepositoryUrls> |
String |
1.3.0 |
Comma separated list of Maven repository lists. If set, and useApiDependencies is enabled, then one of the listed repositories must provide the artifact. If it is not set, all artifacts are used as dependencies if useApiDependencies is enabled. |
<apiResources> |
List<File> |
- |
Additional resources for the api jar |
<apiSourceResources> |
List<File> |
- |
Additional resources for the api source jar |
<apiVersion> |
String |
1.2.0 |
Optional version to be put into the manifest of the created jars |
<attachApiJars> |
boolean |
- |
If enabled, the created api jars will be attached to the project Default: true |
<defaultMetadata> |
Map<...> |
- |
This parameter is only declared to make Maven happy, it is evaluated in the Preprossor |
<enableLegacyVariableReplacement> |
boolean |
1.3.6 |
Enable old variable replacement in feature model based on the full maven project including system variables. If this is enabled, enableProjectVariableReplacement and replacePropertyVariables have no effect. Default: false |
<enableProjectVariableReplacement> |
boolean |
1.3.6 |
Enable the replacement of variables when reading a feature model. The supported variables are "project.groupId", "project.artifactId", "project.version" and "project.osgiVersion". Default: true |
<enabledToggles> |
String |
1.5.0 |
A comma separated list of enabled toggles used as input to generate the api jars. User Property: enabled.toggles |
<excludeRegions> |
Set<String> |
- |
Names of the regions to exclude, by default no regions is excluded. |
<failOnError> |
boolean |
1.3.2 |
Fail the build if errors are detected. For example, errors could be missing packages in the api jars, or too many packages in those jars. Default: false |
<failOnMissingSourcesForJavadoc> |
boolean |
1.3.6 |
Fail the build if sources are mising for javadoc generation Default: false |
<featuresExcludes> |
String |
- |
Comma separated list of excludes for the feature files. Feature files excluded by this configuration are not processed at all. |
<featuresIncludes> |
String |
- |
Comma separated list of includes for the feature files in the configured directory. Only feature files specified by this include are processed. Default: **/*.json |
<generateApiJar> |
boolean |
- |
Generate api jar Default: true |
<generateJavadocForAllApi> |
boolean |
1.5.2 |
If useApiDependencies is set to true and useApiDependenciesForJavadoc is set to true this can be set to false to generate an additional javadoc API jar with all javadoc including the API from dependencies.Default: false |
<generateJavadocJar> |
boolean |
- |
Generate the javadoc jar Default: true |
<generateSourceJar> |
boolean |
- |
Generate the sources jar Default: true |
<generatedFeatures> |
File |
- |
Directory containing generated feature files |
<generatedFeaturesExcludes> |
String |
- |
Comma separated list of excludes for the generated feature files. Feature files excluded by this configuration are not processed at all. |
<generatedFeaturesIncludes> |
String |
- |
Comma separated list of includes for the generated feature files in the configured directory. Only feature files specified by this include are processed. Default: **/*.json |
<ignoreJavadocErrors> |
boolean |
- |
Ignore errors in javadoc generation Default: false |
<includeProviderTypeResource> |
boolean |
1.8.0 |
Include ProviderType interfaces as a resource in the binary jar Default: false |
<includeRegions> |
Set<String> |
- |
Names of the regions to include, by default all regions are included. Default: * |
<includeResources> |
String[] |
- |
Patterns identifying which resources to include from bundles. This can be used to include files like license or notices files. Starting with version 1.2.0 these files are only searched in the folders mentioned by #resourceFolders |
<incrementalApis> |
boolean |
- |
If set to true and api jars are created for more than one region, then the higher region only gets the difference to the lower region. If set to false each api jar gets the full region information (duplicating information) Default: true |
<jarStartOrder> |
int |
- |
The start level for the attached jar/bundle. |
<javadocAdditionalExtensions> |
List<String> |
1.5.0 |
A list of configurations to add additional artifacts to a region for javadoc generation. The value is a comma separated list of extension names from the feature model. If such an extension exists, it must be of type artifacts. The list of names can be prefixed with a region name separated by a colon from the list of names. In that case, the artifacts are only added to that region. |
<javadocClasspathHighestVersions> |
List<String> |
1.3.14 |
A artifact patterns to match artifacts put on the javadoc classpath. Follows the pattern "groupId:artifactId:type:classifier:version". From the matching artifacts, only the highest version is kept per artifact. This rule is applied after the removals. |
<javadocClasspathRemovals> |
List<String> |
1.3.14 |
A artifact patterns to match artifacts put on the javadoc classpath. Follows the pattern "groupId:artifactId:type:classifier:version". Any matching artifact is removed from the classpath. Removals are processed first. |
<javadocClasspathTops> |
List<String> |
1.3.14 |
A artifact patterns to match artifacts put on the javadoc classpath. Follows the pattern "groupId:artifactId:type:classifier:version". Any matching artifact is put at the top of the classpath. This rule is applied last. |
<javadocIndex> |
boolean |
1.3.6 |
Whether the index should be generated Default: true |
<javadocLinks> |
String[] |
- |
List of javadoc links used in the javadoc generation. |
<javadocSourceLevel> |
String |
- |
Source level for javadoc generation Default: 8 |
<javadocTree> |
boolean |
1.3.6 |
Whether the tree should be generated Default: true |
<licenseDefaults> |
List<String> |
1.2.0 |
A artifact patterns to match artifacts without a license. Follows the pattern "groupId:artifactId:type:classifier:version". After the patter a "=" followed by the license information needs to be specified. This information is used in the license report if no license is specified for an artifact. |
<licenseReport> |
String |
1.2.0 |
Create a license report file. This is the name of that file within the jar |
<licenseReportFooter> |
String |
1.2.0 |
Footer added at the bottom of the license report |
<licenseReportHeader> |
String |
1.2.0 |
Header added on top of the license report Default: This archive contains files from the following artifacts: |
<manifestProperties> |
Properties |
1.3.2 |
specify the manifest properties values that you need to replace in the Manifest file. |
<replacePropertyVariables> |
String |
1.3.6 |
A comma separated list of variables which are replaced when a feature model is read. The value of these variables is fetched from the project properties. |
<resourceFolders> |
String |
1.2.0 |
Comma separated list of folders where files are renamed. Default: META-INF,SLING-INF |
<selection> |
FeatureSelectionConfig |
- |
Select the features for api generation. Separate api jars will be generated for each feature. |
<skipAddFeatureDependencies> |
boolean |
- |
If set to true the artifacts from the feature are not added as dependencies with scope=provided to the project.Default: false |
<skipAddJarToFeature> |
boolean |
- |
If set to true the main jar artifact is not added to the feature.Default: false |
<skipAddJarToTestFeature> |
boolean |
- |
If set to true the main jar artifact is not added to the test feature.Default: false |
<skipAddTestFeatureDependencies> |
boolean |
- |
If set to true the artifacts from the test feature are not added as dependencies with scope=test to the project.Default: true |
<testFeaturesExcludes> |
String |
- |
Comma separated list of excludes for the test features. |
<testFeaturesIncludes> |
String |
- |
Comma separated list of includes for the test features. Default: **/*.json |
<toggleApiOnly> |
boolean |
1.4.26 |
If set to true the apis jar will only contain api which is behind the enabled toggles. All other public api is not included. If set to false (the default) all public api is included per region. Default: false |
<useApiDependencies> |
boolean |
1.3.0 |
If enabled, packages from artifacts which are fully consumed (all public api) are omitted from the api and source jars and a dependency list is generated instead. Default: false |
<useApiDependenciesForJavadoc> |
boolean |
1.5.2 |
If this is set to false the javadoc generated will always contain all APIs even the api from dependencies (if useApiDependencies) is enabled. If this is set to true the javadoc will not contain the API from dependencies and exactly match the binary and source jars.Default: false |
<validateFeatures> |
boolean |
- |
If set to true the features are validated against the JSON schema.Default: true |
Parameter Details
<apiClassifierMappings>
Mapping for the feature classifier to a user defined name
- Type:
java.util.Map<java.lang.String, java.lang.String> - Required:
No
<apiJavadocResources>
Additional resources for the api javadoc jar
- Type:
java.util.List<java.io.File> - Required:
No
<apiName>
Optional artifact name which is used instead of the generated artifact name to set some headers in the manifest.
- Type:
java.lang.String - Since:
1.5.6 - Required:
No
<apiRegionNameMappings>
Mapping for an api region name to a user defined name
- Type:
java.util.Map<java.lang.String, java.lang.String> - Required:
No
<apiRepositoryUrls>
Comma separated list of Maven repository lists. If set, and
useApiDependencies is enabled, then one of the listed repositories must provide the artifact. If it is not set, all artifacts are used as dependencies if useApiDependencies is enabled.- Type:
java.lang.String - Since:
1.3.0 - Required:
No
<apiResources>
Additional resources for the api jar
- Type:
java.util.List<java.io.File> - Required:
No
<apiSourceResources>
Additional resources for the api source jar
- Type:
java.util.List<java.io.File> - Required:
No
<apiVersion>
Optional version to be put into the manifest of the created jars
- Type:
java.lang.String - Since:
1.2.0 - Required:
No
<attachApiJars>
If enabled, the created api jars will be attached to the project
- Type:
boolean - Required:
No - Default:
true
<defaultMetadata>
This parameter is only declared to make Maven happy, it is evaluated in the Preprossor
- Type:
java.util.Map<java.lang.String, java.util.Map<java.lang.String, java.lang.String>> - Required:
No
<enableLegacyVariableReplacement>
Enable old variable replacement in feature model based on the full maven project including system variables. If this is enabled, enableProjectVariableReplacement and replacePropertyVariables have no effect.
- Type:
boolean - Since:
1.3.6 - Required:
No - Default:
false
<enableProjectVariableReplacement>
Enable the replacement of variables when reading a feature model. The supported variables are "project.groupId", "project.artifactId", "project.version" and "project.osgiVersion".
- Type:
boolean - Since:
1.3.6 - Required:
No - Default:
true
<enabledToggles>
A comma separated list of enabled toggles used as input to generate the api jars.
- Type:
java.lang.String - Since:
1.5.0 - Required:
No - User Property:
enabled.toggles
<excludeRegions>
Names of the regions to exclude, by default no regions is excluded.
- Type:
java.util.Set<java.lang.String> - Required:
No
<failOnError>
Fail the build if errors are detected. For example, errors could be missing packages in the api jars, or too many packages in those jars.
- Type:
boolean - Since:
1.3.2 - Required:
No - Default:
false
<failOnMissingSourcesForJavadoc>
Fail the build if sources are mising for javadoc generation
- Type:
boolean - Since:
1.3.6 - Required:
No - Default:
false
<features>
Directory containing feature files
- Type:
java.io.File - Required:
Yes - Default:
src/main/features
<featuresExcludes>
Comma separated list of excludes for the feature files. Feature files excluded by this configuration are not processed at all.
- Type:
java.lang.String - Required:
No
<featuresIncludes>
Comma separated list of includes for the feature files in the configured directory. Only feature files specified by this include are processed.
- Type:
java.lang.String - Required:
No - Default:
**/*.json
<generateApiJar>
Generate api jar
- Type:
boolean - Required:
No - Default:
true
<generateJavadocForAllApi>
If
useApiDependencies is set to true and useApiDependenciesForJavadoc is set to true this can be set to false to generate an additional javadoc API jar with all javadoc including the API from dependencies.- Type:
boolean - Since:
1.5.2 - Required:
No - Default:
false
<generateJavadocJar>
Generate the javadoc jar
- Type:
boolean - Required:
No - Default:
true
<generateSourceJar>
Generate the sources jar
- Type:
boolean - Required:
No - Default:
true
<generatedFeatures>
Directory containing generated feature files
- Type:
java.io.File - Required:
No
<generatedFeaturesExcludes>
Comma separated list of excludes for the generated feature files. Feature files excluded by this configuration are not processed at all.
- Type:
java.lang.String - Required:
No
<generatedFeaturesIncludes>
Comma separated list of includes for the generated feature files in the configured directory. Only feature files specified by this include are processed.
- Type:
java.lang.String - Required:
No - Default:
**/*.json
<ignoreJavadocErrors>
Ignore errors in javadoc generation
- Type:
boolean - Required:
No - Default:
false
<includeProviderTypeResource>
Include ProviderType interfaces as a resource in the binary jar
- Type:
boolean - Since:
1.8.0 - Required:
No - Default:
false
<includeRegions>
Names of the regions to include, by default all regions are included.
- Type:
java.util.Set<java.lang.String> - Required:
No - Default:
*
<includeResources>
Patterns identifying which resources to include from bundles. This can be used to include files like license or notices files. Starting with version 1.2.0 these files are only searched in the folders mentioned by
#resourceFolders- Type:
java.lang.String[] - Required:
No
<incrementalApis>
If set to true and api jars are created for more than one region, then the higher region only gets the difference to the lower region. If set to false each api jar gets the full region information (duplicating information)
- Type:
boolean - Required:
No - Default:
true
<jarStartOrder>
The start level for the attached jar/bundle.
- Type:
int - Required:
No
<javadocAdditionalExtensions>
A list of configurations to add additional artifacts to a region for javadoc generation. The value is a comma separated list of extension names from the feature model. If such an extension exists, it must be of type artifacts. The list of names can be prefixed with a region name separated by a colon from the list of names. In that case, the artifacts are only added to that region.
- Type:
java.util.List<java.lang.String> - Since:
1.5.0 - Required:
No
<javadocClasspathHighestVersions>
A artifact patterns to match artifacts put on the javadoc classpath. Follows the pattern "groupId:artifactId:type:classifier:version". From the matching artifacts, only the highest version is kept per artifact. This rule is applied after the removals.
- Type:
java.util.List<java.lang.String> - Since:
1.3.14 - Required:
No
<javadocClasspathRemovals>
A artifact patterns to match artifacts put on the javadoc classpath. Follows the pattern "groupId:artifactId:type:classifier:version". Any matching artifact is removed from the classpath. Removals are processed first.
- Type:
java.util.List<java.lang.String> - Since:
1.3.14 - Required:
No
<javadocClasspathTops>
A artifact patterns to match artifacts put on the javadoc classpath. Follows the pattern "groupId:artifactId:type:classifier:version". Any matching artifact is put at the top of the classpath. This rule is applied last.
- Type:
java.util.List<java.lang.String> - Since:
1.3.14 - Required:
No
<javadocIndex>
Whether the index should be generated
- Type:
boolean - Since:
1.3.6 - Required:
No - Default:
true
<javadocLinks>
List of javadoc links used in the javadoc generation.
- Type:
java.lang.String[] - Required:
No
<javadocSourceLevel>
Source level for javadoc generation
- Type:
java.lang.String - Required:
No - Default:
8
<javadocTree>
Whether the tree should be generated
- Type:
boolean - Since:
1.3.6 - Required:
No - Default:
true
<licenseDefaults>
A artifact patterns to match artifacts without a license. Follows the pattern "groupId:artifactId:type:classifier:version". After the patter a "=" followed by the license information needs to be specified. This information is used in the license report if no license is specified for an artifact.
- Type:
java.util.List<java.lang.String> - Since:
1.2.0 - Required:
No
<licenseReport>
Create a license report file. This is the name of that file within the jar
- Type:
java.lang.String - Since:
1.2.0 - Required:
No
<licenseReportFooter>
Footer added at the bottom of the license report
- Type:
java.lang.String - Since:
1.2.0 - Required:
No
<licenseReportHeader>
Header added on top of the license report
- Type:
java.lang.String - Since:
1.2.0 - Required:
No - Default:
This archive contains files from the following artifacts:
<manifestProperties>
specify the manifest properties values that you need to replace in the Manifest file.
- Type:
java.util.Properties - Since:
1.3.2 - Required:
No
<replacePropertyVariables>
A comma separated list of variables which are replaced when a feature model is read. The value of these variables is fetched from the project properties.
- Type:
java.lang.String - Since:
1.3.6 - Required:
No
<resourceFolders>
Comma separated list of folders where files are renamed.
- Type:
java.lang.String - Since:
1.2.0 - Required:
No - Default:
META-INF,SLING-INF
<selection>
Select the features for api generation. Separate api jars will be generated for each feature.
- Type:
org.apache.sling.feature.maven.mojos.FeatureSelectionConfig - Required:
No
<skipAddFeatureDependencies>
If set to
true the artifacts from the feature are not added as dependencies with scope=provided to the project.- Type:
boolean - Required:
No - Default:
false
<skipAddJarToFeature>
If set to
true the main jar artifact is not added to the feature.- Type:
boolean - Required:
No - Default:
false
<skipAddJarToTestFeature>
If set to
true the main jar artifact is not added to the test feature.- Type:
boolean - Required:
No - Default:
false
<skipAddTestFeatureDependencies>
If set to
true the artifacts from the test feature are not added as dependencies with scope=test to the project.- Type:
boolean - Required:
No - Default:
true
<testFeatures>
Directory containing test feature files.
- Type:
java.io.File - Required:
Yes - Default:
src/test/features
<testFeaturesExcludes>
Comma separated list of excludes for the test features.
- Type:
java.lang.String - Required:
No
<testFeaturesIncludes>
Comma separated list of includes for the test features.
- Type:
java.lang.String - Required:
No - Default:
**/*.json
<toggleApiOnly>
If set to true the apis jar will only contain api which is behind the enabled toggles. All other public api is not included. If set to false (the default) all public api is included per region.
- Type:
boolean - Since:
1.4.26 - Required:
No - Default:
false
<useApiDependencies>
If enabled, packages from artifacts which are fully consumed (all public api) are omitted from the api and source jars and a dependency list is generated instead.
- Type:
boolean - Since:
1.3.0 - Required:
No - Default:
false
<useApiDependenciesForJavadoc>
If this is set to
false the javadoc generated will always contain all APIs even the api from dependencies (if useApiDependencies) is enabled. If this is set to true the javadoc will not contain the API from dependencies and exactly match the binary and source jars.- Type:
boolean - Since:
1.5.2 - Required:
No - Default:
false
<validateFeatures>
If set to
true the features are validated against the JSON schema.- Type:
boolean - Required:
No - Default:
true
