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

时间:2018-02-21 22:04:46

标签: maven apache-karaf opendaylight

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

这可能是一个Maven问题而不是OpenDaylight问题......

2 个答案:

答案 0 :(得分:3)

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

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

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

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

the ODL Parent developer guide中简要记录了这一点。

答案 1 :(得分:1)

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