Как добавить новые функции в OpenDayLight Karaf? - PullRequest
0 голосов
/ 13 сентября 2018

Как добавить новые функции в ODL Oxygen SR3 (0.8.3) в качестве модуля Karaf?

Например, я скачал готовый ODL с официальной страницы . Затем я хотел бы сделать образец тостера в качестве нового модуля для кислорода, он был создан с помощью команды:

wget -q -O - https://raw.githubusercontent.com/opendaylight/odlparent/master/settings.xml > ~/.m2/settings.xml
mvn archetype:generate -DarchetypeGroupId=org.opendaylight.archetypes -DarchetypeArtifactId=opendaylight-startup-archetype -DarchetypeCatalog=remote -DarchetypeVersion=1.1.0-SNAPSHOT

После компиляции он будет генерировать встроенные файлы в локальный репозиторий maven (~/.m2/repository/com/example/toaster). Я скопировал com/example/toaster в стандартную папку репозитория Karaf ./karaf-0.8.3/system. Затем я хотел бы сделать его доступным в feature:list, чтобы я мог установить его с feature:install toaster. Сначала мне нужно добавить его в список репо:

./karaf-0.8.3/bin/karaf
feature:repo-add mvn:com.example.toaster/features-toaster

К сожалению, это показало ошибку:

Ошибка при выполнении команды: ошибка при разрешении артефакта com.example.toaster: features-toaster: jar: 0.1.0-SNAPSHOT:

[Не удалось найти артефакт com.example.toaster: features-toaster: jar: 0.1.0-SNAPSHOT в opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/)]: mvn: com.example.toaster / features-toaster

Приведенная выше команда основана на этой записи . Как правильно сделать repo-add?

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

После построения измените конфигурацию в конце файла karaf/target/assembly/etc/org.ops4j.pax.url.mvn.cfg на

org.ops4j.pax.url.mvn.repositories= \
    file:${karaf.home}/${karaf.default.repository}@id=system.repository, \
    file:${karaf.data}/kar@id=kar.repository@multi, \
    https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot@id=opendaylight-snapshot@snapshots, \
    https://nexus.opendaylight.org/content/repositories/public@id=opendaylight-mirror

Затем вы можете добавить репозиторий с помощью

feature:repo-add mvn:org.opendaylight.netconf/features-restconf/1.9.0-SNAPSHOT/xml/features

, где groudId: org.opendaylight.netconf, artifactId: features-restconf и version: 1.9.0-SNAPSHOT зависят от функции, которую вы хотите добавить. Вы можете найти их в https://nexus.opendaylight.org/ с помощью Articfact Search и найти их в помпе Maven.

0 голосов
/ 13 сентября 2018

Пожалуйста, прочитайте статью https://karaf.apache.org/manual/latest/#_artifacts_repositories_and_urls.Что вам нужно сделать, так это добавить URl репозитория, который содержит ваш тостер, в пакет следующим образом: (Пример из документации, указанной выше)

<bundle>http://repo1.maven.org/maven2/org/apache/servicemix/nmr/org.apache.servicemix.nmr.api/1.0.0-m2/org.apache.servicemix.nmr.api-1.0.0-m2.jar</bundle>

Хранилища также могут быть определены с помощью свойств:

org.ops4j.pax.url.mvn.repositories: список URL удаленных репозиториев, разделенных запятыми, которые проверяются в порядке появления при разрешении артефактов maven

Источник: https://karaf.apache.org/manual/latest/#_maven_url_handler

...