2016-01-08 3 views
0

Я пытаюсь развернуть свои java-модули в контейнере OSGI. Через функцию karaf 'я могу сгенерировать feature.xml, в котором перечислены все необходимые пакеты.Может ли Karaf загружать зависимости из репозитория maven самостоятельно?

Как известно, каждый комплект является зависимостью. Теперь у нас есть некоторые зависимости, которые можно загрузить maven из своего репозитория.

Как я могу указать karaf для загрузки этих зависимостей из maven repo напрямую или даже из нашего локального репозитория maven. Например, например, в pom мы пишем зависимость, и когда мы делаем maven clean install, он загружает все банки в локальный репозиторий m2.

В моей функции xml содержатся эти пакеты maven repo, которые еще не решены.

<bundle>mvn:org.springframework.data/spring-data-cassandra/1.2.2.RELEASE</bundle> 
<bundle>mvn:org.springframework.data/spring-cql/1.2.2.RELEASE</bundle> 
<bundle>wrap:mvn:org.springframework/spring-context/4.0.9.RELEASE</bundle> 
<bundle>wrap:mvn:org.springframework/spring-aop/4.0.9.RELEASE</bundle> 
<bundle>wrap:mvn:org.springframework/spring-beans/4.0.9.RELEASE</bundle> 
<bundle>wrap:mvn:aopalliance/aopalliance/1.0</bundle> 
<bundle>wrap:mvn:org.springframework/spring-beans/4.2.3.RELEASE</bundle> 
<bundle>wrap:mvn:org.springframework/spring-core/4.2.3.RELEASE</bundle> 
<bundle>mvn:commons-logging/commons-logging/1.2</bundle> 
<bundle>wrap:mvn:org.springframework/spring-expression/4.2.3.RELEASE</bundle> 
<bundle>wrap:mvn:org.springframework/spring-jdbc/4.2.3.RELEASE</bundle> 
<bundle>wrap:mvn:org.springframework/spring-tx/4.2.3.RELEASE</bundle> 
<bundle>wrap:mvn:org.springframework/spring-test/4.2.3.RELEASE</bundle> 

ответ

2

В редактировании $KARAF_HOME/etc папку по org.ops4j.pax.url.mvn.cfg файлу для обозначения расположения локального хранилища.

org.ops4j.pax.url.mvn.localRepository=<path to repository> 
+0

Точка может я спрашиваю karaf через функцию для того чтобы download e.g commons-lang от maven когда я говорю mvn: commons-lang/commons-lang/2.6 будет ли это скачать его для меня? – usman

+0

Да, это автоматически. Он попытается извлечь из всех репозиториев, настроенных в свойстве 'org.ops4j.pax.url.mvn.repositories'' $ KARAF_HOME/etc/org.ops4j.pax.url.mvn.cfg'. Это включает в себя Maven Central по умолчанию и несколько других. – raulk

+0

Я тестировал репозитории и обнаружил, что сайт maven в основном позволяет загружать метод GET, и karaf не может загрузить эти библиотеки из maven repo. – usman

0

Это зависит от версии karaf. Karaf 2.x не загружался в локальный репозиторий maven. Однако он смог прочитать из местного репо.

Karaf 3.x и 4.x загружают все зависимости в локальный репозиторий maven при первом обращении к ним. Поэтому в следующие моменты установка работает намного быстрее.