ウェビナーの作成-your-own-wso2-carbon-componentsでは、カーボン コンポーネントの作成と、それらのコンポーネントの機能について説明します。かなり多くの基本事項とベスト プラクティスもカバーしています。
作成したフィーチャーをホストするには、それらのフィーチャーから p2-repository を生成する必要があります。p2-repo の概念は、WSO2 製品が使用する下線付きのEclipse equinoxプロジェクトから来ています。
WSO2 は、p2-repo の生成に役立つ carbon-p2-plugin と呼ばれる独自の Maven プラグインを作成しました。これを行う方法は次のとおりです。新しい Maven プロジェクト (パッケージ: pom) を作成し、公開する機能を carbon-p2-plugin プラグイン構成で設定するだけです。以下は、使用できる pom.xml のサンプルです。これはcarbon 4.1.0の p2-repo 生成 pom.xml からコピーされ、簡略化されています。
このpomファイルをテストしましたが、うまくいきました。フィーチャー定義のサンプルが 2 つあります。これらの featureArtifactDef を独自の機能定義に置き換えます。形式は $groupId:$artifactId:$version です。
これを maven でビルドすると、maven によって target/p2-repo ディレクトリが作成されます。これには、artifacts.jar と content.jar を含む完全な p2-repo を含む p2-repository が含まれます。このフォルダーを使用して機能をインストールすることも、どこかにホストすることもできます。ホスティングに関する特別な要件はありません。
<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">
<parent>
<groupId>org.wso2.carbon</groupId>
<artifactId>carbon-features</artifactId>
<version>4.1.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>mysample-feature-repository</artifactId>
<version>4.1.0</version>
<packaging>pom</packaging>
<name>WSO2 Carbon - Feature Repository</name>
<build>
<plugins>
<plugin>
<groupId>org.wso2.maven</groupId>
<artifactId>carbon-p2-plugin</artifactId>
<version>1.5.2</version>
<executions>
<execution>
<id>2-p2-repo-generation</id>
<phase>package</phase>
<goals>
<goal>p2-repo-gen</goal>
</goals>
<configuration>
<p2AgentLocation>${basedir}/target/p2-agent</p2AgentLocation>
<metadataRepository>file:${basedir}/target/p2-repo</metadataRepository>
<artifactRepository>file:${basedir}/target/p2-repo</artifactRepository>
<publishArtifacts>true</publishArtifacts>
<publishArtifactRepository>true</publishArtifactRepository>
<featureArtifacts>
<!-- change the featureArtifactDef to match your needs -->
<featureArtifactDef>
org.wso2.carbon:org.wso2.carbon.service.mgt.feature:4.1.0
</featureArtifactDef>
<featureArtifactDef>
org.wso2.carbon:org.wso2.carbon.registry.core.feature:4.1.0
</featureArtifactDef>
</featureArtifacts>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>