如何在WSO2功能定义中提供库包?

时间:2014-08-19 14:34:18

标签: wso2 osgi p2

按照学生管理员的例子,我设法准备了WSO2功能(服务器+ ui +聚合)并生成了p2存储库。

由于缺少依赖性,聚合功能无法安装,例如我的xxx.analyzer组件(以及后来的一些Apache Commons库):

Cannot complete the install because one or more required items could not be found.
  Software being installed: My Manager Aggregate Feature 1.0.0 (xxx.mgt.feature.group 1.0.0)
  Missing requirement: xxx.mgt 1.0.0 (xxx.mgt 1.0.0) requires 'package xxx.analyzer 0.0.0' but it could not be found
  Cannot satisfy dependency:
    From: My Manager Aggregate Feature 1.0.0 (xxx.mgt.feature.group 1.0.0)
    To: xxx.mgt.server.feature.group [1.0.0]

我的捆绑包安装在本地M2_REPO中。 当我将它们直接安装到WSO2 OSGi控制台命令行时,它们可以正常工作。

如何将它们包含在功能中?

1 个答案:

答案 0 :(得分:1)

您可以使用功能pom中carbon-p2插件的配置部分中的<bundleDef>group.id:bundle.artifact.id</bundleDef>将您的捆绑包包含到功能中。它将类似于下面的内容。

...
<execution>
   <id>p2-feature-generation</id>
   <phase>package</phase>
   <goals>
      <goal>p2-feature-gen</goal>
   </goals>
   <configuration>
      <id>org.wso2.carbon.student.mgt.ui</id>
      ...
      <bundles>
         <bundleDef>org.wso2.carbon:org.wso2.carbon.student.mgt.stub</bundleDef>
         <bundleDef>org.wso2.carbon:org.wso2.carbon.student.mgt.ui</bundleDef>
      </bundles>
   </configuration>
</execution>
...

如果您需要添加功能而不是捆绑包,则可以在聚合功能pom中使用<includedFeatureDef>group.id:feature.artifact.id</includedFeatureDef>。两者的示例可以在this tutorial中找到。