Specifying profile information
You can explicitly configure the name of the profile to create, by adding a
configuration element to the plug-in configuration in your
pom.xml file, as follows:
Multi-module Maven projects
For multi-module Maven projects, a more flexible way to configure the plug-in is to use Maven properties. For example if you have a multi-module maven project such as this:
You could define the plug-in once in the root
pom.xml file, as follows:
While in the
foo/pom.xml file you need only define the
fabric8.profile property, as follows:
All of the projects within the
foo folder, such as
foo/b, will deploy to the same profile (in this case the profile,
my-foo). You can use the same approach to put all of the projects under the
bar folder into a different profile too.
At any point in your tree of maven projects you can define a maven
fabric8.profile property to specify exactly where it gets deployed; along with any other property on the plug-in (see the Property Reference below).
Specifying features, additional bundles, repositories and parent profiles
You can specify additional configuration in the maven plug-in, as follows:
<features>fabric-cxf-registry fabric-cxf cxf war swagger</features>
Note that the
features element allows you to specify a space-separated list of features to include in the profile.
This example specifies space-separated lists for the parent profile IDs, features, repositories and bundles so that it is easy to reuse Maven properties for these values (for example, to add some extra features to a child maven project while inheriting from the parent project).
Configuring with Maven properties
You can also use maven property values (or command line arguments) to specify the configuration values by prefixing the property name with
fabric8.. For example, to deploy a maven project to the
cheese profile name, enter the command:
mvn fabric8:deploy -Dfabric8.profile=cheese
By default, the project artifacts are uploaded to the Maven repository inside the fabric. If you want to disable this beahvior and just update the profile configuration (for example, if you are already pointing your fabric's Maven repository to your local Maven repository), you can set
mvn fabric8:deploy -Dfabric8.upload=false
Specifying profile resources
If you create the directory,
src/main/fabric8, in your Maven project and add any resource files or a
ReadMe.md file to your project, they will automatically be uploaded into the profile as well. For example, if you run the following commands from your Maven project directory:
mkdir -p src/main/fabric8
echo "## Hello World" >> src/main/fabric8/ReadMe.md
The newly deployed profile will include a
ReadMe.md wiki page.