OpenDaylight Nitrogen:在哪里指定功能存储库?

OpenDaylight Nitrogen: where to specify repository for features?

在 OpenDaylight Nitrogen 中(在 Karaf 4.0 上)我在哪里指定存储库路径?我正在这个平台上构建一个 Java 应用程序。我注意到 features.xml 是从 POM 生成的。我需要从我的本地 Maven .m2/repository 加载一些从另一个项目生成的功能。我看到一个带有 pom.xmlfeatures/features-X 目录,我可以在其中添加功能依赖项,但是我应该在哪里指定要在其中查找该功能的存储库?

这可能更像是 Maven 问题而不是 OpenDaylight 问题....

只需将其作为依赖项放入features/features-X/pom即可。xml插件查看maven路径并自动生成存储库。 (回答我自己的问题,以便对其他人有用。)

这有点 OpenDaylight-specific(尽管显然可以在其他上下文中使用 Maven 复制该行为)。正如您所发现的,Karaf 特性描述符现在是基于 POM 依赖项自动生成的。为此,必须满足以下要求:

  • feature-generating 模块必须有 org.opendaylight.odlparent:single-feature-parent 作为其父级(必要时传递);
  • POM 必须指定 feature 作为其 packaging 类型;
  • 功能依赖项应在 POM 中声明为构建依赖项,使用默认范围,type 设置为 xmlclassifier 设置为 features(复数).

如有必要,可以在相应模块中以src/main/feature/feature.xml(单数)的形式给出特征片段;这些将与生成的 feature.xml (再次单数)合并。结果作为 features.xml(复数)文件安装在目标存储库中。

值得注意的是,以这种方式生成的特征描述符将它们所依赖的每个特征用作它们自己的存储库;如果您需要 multi-feature 存储库,则应使用 manually-generated 功能描述符。

这在 the ODL Parent developer guide 中有简要记录。