Fork me on GitHub

slingfeature:include-artifact

Full name:

org.apache.sling:slingfeature-maven-plugin:1.7.2:include-artifact

Description:

This goal creates a Feature Model file that includes the Module Artifact as bundle (or extension) so that the Artifact can be added through a FM into a FM project. The FM file can be found in the 'build directory'/slingfeature-tmp folder. After a FM file is created successfully this file will be installed in the local Maven Repository as 'slingosgifeature' file under the Module's Maven Id location (group, artifact, version). This file can then later be used inside the 'aggregate-features' goal with: <includeArtifact> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.test.feature</artifactId> <version>1.0.0</version> <classifier>my-test-classifier</classifier> <type>slingosgifeature</type> </includeArtifact> It also can add dependencies to the FM file if its scope is provided (normally that would be 'compile'). In addition a bundle start order can be set for these included dependency bundles. Finally any FM files inside the Source FM folder are embedded into the FM file. This allows to add extension files like 'repoinit' etc to be added to provide them with the module.

Attributes:

  • Requires a Maven project to be executed.
  • Requires dependency resolution of artifacts in scope: compile.
  • The goal is thread-safe and supports parallel builds.
  • Binds by default to the lifecycle phase: prepare-package.

Required Parameters

Name Type Since Description
<features> File - Directory containing feature files
Default value is: src/main/features.
<testFeatures> File - Directory containing test feature files.
Default value is: src/test/features.

Optional Parameters

Name Type Since Description
<bundlesStartOrder> int - Start Order of all included Dependencies.
Default value is: -1.
User property is: bundleStartOrder.
<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 value is: 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 value is: true.
<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 value is: **/*.json.
<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 value is: **/*.json.
<includeArtifactClassifier> String - Classifier of the feature the current artifact is included in. For simple projects a artifact classifier is not needed but in multi feature projects the classifier is used to find the appropriate feature.
User property is: includeArtifactClassifier.
<includeArtifactExtension> String - Name of the extension to include the artifact in. If not specified the artifact is included as a bundle.
<includeClassifier> String 1.3.0 Name of the classifier for the artifact to be included. By default the main artifact (no classifier) will be included.
<includeDependenciesWithScope> String[] - All listed dependency's scopes will be added to the descriptor.
User property is: includeDependenciesWithScope.
<includeType> String 1.3.0 Name of the type for the artifact to be included. By default the type of the main artifact is used.
<jarStartOrder> int - The start level for the attached jar/bundle.
<metadata> Map - Metadata for the included artifact.
<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.
<skipAddFeatureDependencies> boolean - If set to true the artifacts from the feature are not as dependencies to the project.
Default value is: false.
<skipAddJarToFeature> boolean - If set to true the main jar artifact is not added to the feature.
Default value is: false.
<skipAddJarToTestFeature> boolean - If set to true the main jar artifact is not added to the test feature.
Default value is: false.
<skipAddTestFeatureDependencies> boolean - If set to true the artifacts from the test feature are not as dependencies to the project.
Default value is: true.
<testFeaturesExcludes> String - Comma separated list of excludes for the test features.
<testFeaturesIncludes> String - Comma separated list of includes for the test features.
Default value is: **/*.json.
<validateFeatures> boolean - If set to true the features are validated against the JSON schema.
Default value is: true.

Parameter Details

<bundlesStartOrder>

Start Order of all included Dependencies.
  • Type: int
  • Required: No
  • User Property: bundleStartOrder
  • Default: -1

<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

<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

<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

<includeArtifactClassifier>

Classifier of the feature the current artifact is included in. For simple projects a artifact classifier is not needed but in multi feature projects the classifier is used to find the appropriate feature.
  • Type: java.lang.String
  • Required: No
  • User Property: includeArtifactClassifier

<includeArtifactExtension>

Name of the extension to include the artifact in. If not specified the artifact is included as a bundle.
  • Type: java.lang.String
  • Required: No

<includeClassifier>

Name of the classifier for the artifact to be included. By default the main artifact (no classifier) will be included.
  • Type: java.lang.String
  • Since: 1.3.0
  • Required: No

<includeDependenciesWithScope>

All listed dependency's scopes will be added to the descriptor.
  • Type: java.lang.String[]
  • Required: No
  • User Property: includeDependenciesWithScope

<includeType>

Name of the type for the artifact to be included. By default the type of the main artifact is used.
  • Type: java.lang.String
  • Since: 1.3.0
  • Required: No

<jarStartOrder>

The start level for the attached jar/bundle.
  • Type: int
  • Required: No

<metadata>

Metadata for the included artifact.
  • Type: java.util.Map
  • 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

<skipAddFeatureDependencies>

If set to true the artifacts from the feature are not as dependencies 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 as dependencies 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

<validateFeatures>

If set to true the features are validated against the JSON schema.
  • Type: boolean
  • Required: No
  • Default: true