我正在尝试将自定义项目添加到分发中。我通过
创建的项目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
通常是否可以添加仅在本地存在的项目?我做错了什么?
提前致谢! 最大
答案 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