将自定义本地项目添加到集成分发
Add custom, local project to integration-distribution
我正在尝试将自定义项目添加到发行版中。我通过
创建的项目
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
(显然)无法通过官方联系获得。我没有对这个项目做任何更改。
我在 distribution
中启动了 karaf
并尝试通过
添加新项目作为新存储库
feature:repo-add mvn:org.opendaylight.flowlistener/features-flowlistener/0.1.0-SNAPSHOT/xml/features
并收到此错误:
Adding feature url mvn:org.opendaylight.flowlistener/features-flowlistener/0.1.0-SNAPSHOT/xml/features
Error executing command: Error resolving artifact org.opendaylight.flowlistener:features-flowlistener:xml:features:0.1.0-SNAPSHOT: [Could not find artifact org.opendaylight.flowlistener:features-flowlistener:xml:features:0.1.0-SNAPSHOT in opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/)] : mvn:org.opendaylight.flowlistener/features-flowlistener/0.1.0-SNAPSHOT/xml/features
通常可以添加仅存在于本地的项目吗?我做错了什么?
提前致谢!
最大值
Karaf 分发使用 etc/org.ops4j.pax.url.mvn.cfg 中的设置来解析 Maven 工件。您将必须调整这些设置(例如 Maven 本地存储库)以供分发以找到您的本地项目。有关如何编辑此文件的一些 in-line 文档:
https://github.com/apache/karaf/blob/master/assemblies/features/base/src/main/resources/resources/etc/org.ops4j.pax.url.mvn.cfg
在 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
命名空间。
我正在尝试将自定义项目添加到发行版中。我通过
创建的项目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
(显然)无法通过官方联系获得。我没有对这个项目做任何更改。
我在 distribution
中启动了 karaf
并尝试通过
feature:repo-add mvn:org.opendaylight.flowlistener/features-flowlistener/0.1.0-SNAPSHOT/xml/features
并收到此错误:
Adding feature url mvn:org.opendaylight.flowlistener/features-flowlistener/0.1.0-SNAPSHOT/xml/features Error executing command: Error resolving artifact org.opendaylight.flowlistener:features-flowlistener:xml:features:0.1.0-SNAPSHOT: [Could not find artifact org.opendaylight.flowlistener:features-flowlistener:xml:features:0.1.0-SNAPSHOT in opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/)] : mvn:org.opendaylight.flowlistener/features-flowlistener/0.1.0-SNAPSHOT/xml/features
通常可以添加仅存在于本地的项目吗?我做错了什么?
提前致谢! 最大值
Karaf 分发使用 etc/org.ops4j.pax.url.mvn.cfg 中的设置来解析 Maven 工件。您将必须调整这些设置(例如 Maven 本地存储库)以供分发以找到您的本地项目。有关如何编辑此文件的一些 in-line 文档: https://github.com/apache/karaf/blob/master/assemblies/features/base/src/main/resources/resources/etc/org.ops4j.pax.url.mvn.cfg
在 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
命名空间。