2015-01-23 7 views
1

У меня есть проект OSGi, который включает в себя зависимость csame-runtime-osgi с областью компиляции.Включить зависимости времени выполнения в karaf: features-generate-descriptor

<dependency> 
    <groupId>org.openrdf.sesame</groupId> 
    <artifactId>sesame-runtime-osgi</artifactId> 
    <version>${sesame.version}</version> 
    <exclusions> 
     <exclusion> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
     </exclusion> 
    </exclusions> 
</dependency> 

Артефакт кунжута-osgi включает в себя несколько зависимостей времени выполнения. Например:

+- org.openrdf.sesame:sesame-runtime-osgi:jar:2.7.13:compile 
| +- org.openrdf.sesame:sesame-http-client:jar:2.7.13:compile 
| | +- org.openrdf.sesame:sesame-http-protocol:jar:2.7.13:compile 
| | | \- org.openrdf.sesame:sesame-rio-ntriples:jar:2.7.6:compile 
| | |  \- commons-io:commons-io:jar:2.1:compile 
| | +- org.openrdf.sesame:sesame-query:jar:2.7.13:compile 
. 
. 
. 
| | \- commons-codec:commons-codec:jar:1.4:runtime 
| \- org.openrdf.sesame:sesame-http-server-spring:jar:2.7.13:compile 
|  +- org.openrdf.sesame:sesame-runtime:jar:2.7.6:compile 
|  | +- org.openrdf.sesame:sesame-repository-manager:jar:2.7.13:compile 
. 
. 
. 
|  | +- org.openrdf.sesame:sesame-queryresultio-sparqljson:jar:2.7.13:runtime 
|  | | \- com.fasterxml.jackson.core:jackson-core:jar:2.2.2:runtime 
|  | +- org.openrdf.sesame:sesame-queryresultio-text:jar:2.7.13:runtime 
|  | | \- net.sf.opencsv:opencsv:jar:2.0:runtime 
. 
. 
. 
|  \- cglib:cglib:jar:2.2:compile 
|  \- asm:asm:jar:3.1:compile 

Вы заметите, что «net.sf.opencsv: opencsv: баночка: 2,0» является зависимость времени выполнения, так что не входит в feature.xml порожденного karaf-Maven-плагин , К сожалению, пакет необходим во время выполнения является включен в «Импорт-пакеты» директивы в кунжутное на этапе выполнения OSGi Manifest:

Import-Package: au.com.bytecode.opencsv 

так Karaf не может развернуть эту функцию, если я вручную завернуть и развертывания среда выполнения зависимостей сам , Очевидно, я не хочу этого делать.

Есть ли способ включить зависимости от области выполнения в генерации feature.xml?

Благодаря

+0

как вы не говорите, какая версия Karaf Maven плагинов, которые вы используете, ты а) попытаться с 3.0.2, б) последний снимок и с), как правило, это лучше спросить у для рассылки karaf. –

+0

Извините, я пробовал это с 3.0.2 и 4.0.0.M1. Нечто похожее происходит с [maven-shade-plugin] (http://maven.apache.org/plugins/maven-shade-plugin/), но оно фиксируется с помощью службы ServicesResourceTransformer. Я просто отправил сообщение в список пользователей. Спасибо за совет! – user3590294

ответ

1

Если вы генерируете features.xml с использованием стандартного Karaf харизмы, то вы можете создать файл шаблона функции в ИПВ/главная/функции/features.xml Что бы вы положить в этот шаблон появится в ваших окончательных сгенерированных функциях.xml Так что, если это абсолютно необходимо, вы можете жестко скопировать зависимости времени выполнения в шаблоне.

Вы можете указать каждую транзитивную зависимость вручную в pom. Это также работает предположительно?

0

Просто следить за ответом Ричарда, файл шаблона должен находиться в

src/main/feature/feature.xml 

НЕ

src/main/features/features.xml 

Внутри файла шаблона feature.xml вы можете включать в себя пакеты зависимостей и функций, которые быть объединены с сгенерированными. Например.

<?xml version="1.0" encoding="UTF-8"?> 
<features name="${project.artifactId}-${project.version}"> 
    <feature name="${project.artifactId}" description="${project.name}" version="${project.version}"> 
    <bundle>mvn:net.sf.opencsv/opencsv/2.0</bundle> 
    </feature> 
</features> 

 Смежные вопросы

  • Нет связанных вопросов^_^