2015-01-23 4 views
1

컴파일 범위와 함께 sesame-runtime-osgi 종속성을 포함하는 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> 

sesame-runtime-osgi 아티팩트에는 몇 가지 런타임 종속성이 포함되어 있습니다. 예를 들어 : "opencsv : 항아리 : 2.0 net.sf.opencsv는"그것이 karaf - 받는다는 - 플러그인에 의해 생성 된 feature.xml을에 포함되지 않도록 런타임 종속성입니다

+- 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 

당신은 것을 알 수 있습니다 . 불행하게도 런타임 에 필요한 패키지는가 깨 런타임 OSGI 매니페스트에서 "가져 오기 - 패키지"지시문에 포함되어

Import-Package: au.com.bytecode.opencsv 

내가 수동 포장 및 런타임 자신을 종속성 배포 아니라면 Karaf는 기능을 배포 할 수 없습니다 . 분명히 나는 ​​그것을하고 싶지 않습니다.

feature.xml 생성시 런타임 범위와의 종속성을 포함시킬 수있는 방법이 있습니까?

감사

+0

당신은 당신이) 3.0.2로 시도했던 어떤 사용중인 Karaf 받는다는 플러그인의 버전, 말을하지 않는 한, b)는 최신 스냅 샷 및 c) 보통이의 메일 링리스트에 문의하는 것이 가장 좋습니다 카라프. –

+0

죄송합니다, 3.0.2 및 4.0.0.M1 시도했습니다. [maven-shade-plugin] (http://maven.apache.org/plugins/maven-shade-plugin/)과 비슷한 점이 있지만 ServiceResourceTransformer를 사용하여 해결할 수 있습니다. 방금 사용자 목록에 메시지를 보냈습니다. 팁 고마워! – user3590294

답변

1

당신은 당신이/기능/당신이 템플릿에 넣어 무엇이든 features.xml 메인 나타납니다/SRC의 기능 템플릿 파일을 만들 수 있습니다 표준 Karaf의 모조를 사용하여 features.xml를 생성하는 경우 절대적으로 필요한 경우 템플릿의 런타임 종속성을 하드 코딩 할 수 있습니다.

각 전이 의존성을 수동으로 지정할 수 있습니다. 그것은 아마 또한 작동 할 것입니까?

0

은 그냥 리차드의 대답에 후속, 템플릿 파일은 의존성 번들과 의지 기능을 포함 할 수 feature.xml을 템플릿 파일에 있지

src/main/features/features.xml 

src/main/feature/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>