我們想編寫我們自己的wso2碳自定義擴展(功能)。是否有一些創作功能的文檔?編寫自定義功能
我們確實設法「破解」我們編寫自定義功能的方式。但我們如何託管它?看來Carbon正在尋找一些非常具體的存儲庫描述符 - artifacts.jar和content.jar
我們如何生成這些描述符而不需要綁定到Carbon構建中。是否有一些文檔描述如何設置第三方功能存儲庫?
我們想編寫我們自己的wso2碳自定義擴展(功能)。是否有一些創作功能的文檔?編寫自定義功能
我們確實設法「破解」我們編寫自定義功能的方式。但我們如何託管它?看來Carbon正在尋找一些非常具體的存儲庫描述符 - artifacts.jar和content.jar
我們如何生成這些描述符而不需要綁定到Carbon構建中。是否有一些文檔描述如何設置第三方功能存儲庫?
Creating-your-own-wso2-carbon-components網絡研討會討論瞭如何創建碳組件,以及這些組件的功能。它涵蓋了相當多的基礎知識以及最佳實踐。
要託管您編寫的創建功能,您需要從這些功能生成p2存儲庫。 p2-repo概念來自WSO2產品使用的下劃線Eclipse equinox項目。
WSO2已經編寫了自己的maven插件,名爲carbon-p2-plugin,它有助於生成p2-repo。這是你如何做到的。只需創建一個新的maven項目(包裝:pom),然後在carbon-p2-plugin插件配置下設置要發佈的功能。以下是您可以使用的示例pom.xml。這是從p2-repo generation pom.xml of carbon 4.1.0複製的,我簡化了它。
我測試過這個pom文件,它對我有用。有兩個示例功能定義。將這些featureArtifactDef替換爲您自己的特徵定義。格式是$ groupId:$ artifactId:$ version。
當你通過maven構建它時,maven創建target/p2-repo目錄。這包含p2-repository,其中包含完整的p2-repo,包括artifacts.jar和content.jar。您可以使用此文件夾來安裝功能,或者您可以將其託管在某處。對託管沒有特殊要求。
<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>