将自定义本地项目添加到集成分发

时间:2018-04-04 16:39:43

标签: opendaylight

我正在尝试将自定义项目添加到分发中。我通过

创建的项目
  

mvn archetype:generate -DarchetypeGroupId = org.opendaylight.controller -DarchetypeArtifactId = opendaylight-startup-archetype -DarchetypeRepository = https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ -DarchetypeCatalog = remote -DarchetypeVersion = 1.6.0-SNAPSHOT

(显然)无法通过官方关系获得。我没有对这个项目做任何改动。

我在karaf中启动distribution并尝试通过

将新项目添加为新的存储库
  

功能:repo-add mvn:org.opendaylight.flowlistener / features-flowlistener / 0.1.0-SNAPSHOT / xml / features

并收到此错误:

  

添加功能url mvn:org.opendaylight.flowlistener / features-flowlistener / 0.1.0-SNAPSHOT / xml / features   执行命令时出错:解析工件错误org.opendaylight.flowlistener:features-flowlistener:xml:features:0.1.0-SNAPSHOT:[找不到工件org.opendaylight.flowlistener:features-flowlistener:xml:features:0.1.0-在opendaylight-snapshot(https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/)]:mvn:org.opendaylight.flowlistener / features-flowlistener / 0.1.0-SNAPSHOT / xml / features

中的SNAPSHOT

通常是否可以添加仅在本地存在的项目?我做错了什么?

提前致谢! 最大

2 个答案:

答案 0 :(得分:3)

使用Karaf中的etc/org.ops4j.pax.url.mvn.cfg配置工件存储库。 OpenDaylight中提供的配置仅使用Karaf系统目录;它完全忽略了本地的Maven存储库。

要添加本地Maven存储库,您应该编辑文件末尾的org.ops4j.pax.url.mvn.repositories条目以包含Maven存储库:

org.ops4j.pax.url.mvn.repositories= \
    file:${karaf.home}/${karaf.default.repository}@id=system.repository, \
    file:${karaf.data}/kar@id=kar.repository@multi, \
    file:${user.home}/.m2/repository@snapshots@id=m2.repository

顺便说一句,除非您打算将项目贡献给OpenDaylight,否则应避免使用org.opendaylight命名空间。

答案 1 :(得分:0)

Karaf发行版使用etc / org.ops4j.pax.url.mvn.cfg中的设置来解析maven工件。您将不得不调整这些设置(例如maven local repo)以查找您的本地项目。有一些关于如何编辑此文件的内联文档: https://github.com/apache/karaf/blob/master/assemblies/features/base/src/main/resources/resources/etc/org.ops4j.pax.url.mvn.cfg