Prerequisites
Maven3 and Ant needs to be installed.
Steps
The following are the steps to create a new feature installed distribution:
- Create a directory and copy the following
pom.xml
file.Example:
Sample
pom.xml
file to create a new feature installed distribution.<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.wso2.sample</groupId> <artifactId>sample-feature-installation</artifactId> <version>1.0.0</version> <packaging>pom</packaging> <name>Creating custom distribution</name> <url>http://wso2.org</url> <build> <plugins> <plugin> <groupId>org.wso2.maven</groupId> <artifactId>carbon-p2-plugin</artifactId> <version>1.5.1</version> <executions> <execution> <id>feature-install</id> <phase>package</phase> <goals> <goal>p2-profile-gen</goal> </goals> <configuration> <profile>WSO2CarbonProfile</profile> <metadataRepository>file:p2-repo</metadataRepository> <artifactRepository>file:p2-repo</artifactRepository> <destination>$distribution_name/repository/components</destination> <deleteOldProfileFiles>true</deleteOldProfileFiles> <features> <feature> <id>org.wso2.carbon.tryit.feature.group</id> <version>4.1.0</version> </feature> </features> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>1.1</version> <executions> <execution> <phase>package</phase> <configuration> <tasks> <replace token="false" value="true" dir="$distribution_name/repository/components/configuration/org.eclipse.equinox.simpleconfigurator"> <include name="**/bundles.info"/> </replace> </tasks> </configuration> <goals> <goal>run</goal> </goals> </execution> </executions> </plugin> </plugins> </build> <repositories> <repository> <id>wso2-nexus</id> <name>WSO2 internal Repository</name> <url>http://maven.wso2.org/nexus/content/groups/wso2-public/</url> <releases> <enabled>true</enabled> <updatePolicy>daily</updatePolicy> <checksumPolicy>ignore</checksumPolicy> </releases> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>wso2-maven2-repository</id> <url>http://dist.wso2.org/maven2</url> </pluginRepository> <pluginRepository> <id>wso2-maven2-repository</id> <url>http://dist.wso2.org/snapshots/maven2</url> </pluginRepository> </pluginRepositories> </project>
For more information on the maven-antrun-plugin please go to http://maven.apache.org/plugins/maven-antrun-plugin/.
- Unzip the original product distribution (e.g.,
wso2carbon-<version>.zip
) and the relevant p2 repository (e.g., http://dist.wso2.org/products/carbon/<version>/p2-repo.zip) to the same directory location. - Replace the
$distribution_name
params found inpom.xml
file, with the unzipped product distribution name (e.g., wso2carbon-<version>) In the
pom.xml
file list down the features you want to install into the system.
Example:<feature> <id>org.wso2.carbon.tryit.feature.group</id> <version>4.1.0</version> </feature>
Execute the following command:
mvn clean install
Upon successful invocation of the build, the product distribution is provisioned with the new features. This approach is scriptable.