2016-07-07 11 views
0

osgi 구성 요소를 만들고 싶습니다. maven-bundle-plugin을 사용하라고 들었습니다. 내 pom.xml이 점을 추가하는 것에 의해 시작 : <_include> 태그에 전달되어maven-bundle-plugin을 사용하면서 .bnd 파일을 만드는 방법은 무엇입니까?

 <plugin> 
       <groupId>org.apache.felix</groupId> 
       <artifactId>maven-bundle-plugin</artifactId> 
       <version>3.0.0</version> 
       <extensions>true</extensions> 
       <configuration> 
        <obrRepository>NONE</obrRepository> 
        <instructions> 
         <_include>-bnd.bnd</_include> 
        </instructions> 
       </configuration> 
     </plugin> 

을 주목 .bnd 파일을. 나는 사람들이이 파일들을 최소한으로 유지해야한다는 말을 들었거나 심지어는 비어 있어야한다. 그런 다음 어떤 수입품/수출품이 필요한지 관찰해야한다. 이것은 혼란 스럽다. 내 MANIFEST.MF 파일을 가져오고 내보낼 항목을 알고 있습니다. 그러나 내 .bnd 파일을 작동 시키려면 약간의 도움이 필요합니다. 지금은 비어있는 파일 인 .bnd을 사용하려고 노력하고 있으며 제대로 작동하는지 확신 할 수 없습니다.

누구나이 플러그인에 대한 경험이 있고 그것을 어떻게 만들고 싶습니까?

예를 들어, here.bnd 샘플입니다. 그러나 나는 그가 이것이 수입/수출이 있어야한다고 어떻게 결정했는지 모른다. 나는 .jar을 테스트 할 때

는 지금, 나는 참으로 .jar에서 MANIFEST.MF이 있다는 사실에도 불구하고

no main manifest attribute, in bundle-1.0.0.jar 

오류가 발생합니다.

업데이트 : 이전에 가지고 있던 MANIFEST.MF을 공유 할 수 있다고 생각했는데, 지금이 플러그인을 통해 생성하고 싶습니다.

Manifest-Version: 1.0 
Bundle-ManifestVersion: 2 
Bundle-Name: Just a Name 
Bundle-SymbolicName: just.a.name.broker;singleton:=true 
Bundle-Version: 1.0.0 
Require-Bundle: org.apache.activemq, 
just.msg 
Bundle-Activator: just.a.broker.Activator 
Bundle-ActivationPolicy: lazy 
Bundle-RequiredExecutionEnvironment: JavaSE-1.7 
Import-Package: javax.naming, 
javax.xml, 
javax.xml.parsers, 
org.apache.log4j.xml, 
org.osgi.framework 
Bundle-ClassPath: . 
Export-Package: just.a.broker 

그래서 이러한 매니페스트를하기 위해 어떻게 내 .bnd 파일은 같이해야합니까? 또는 .bnd 파일을 전달하는 대신 플러그인에 속성을 포함시키는 것이 더 좋습니까?

답변

1

귀하는 .bnd 파일은 다음과 같이 보일 수 있습니다 :이 도움이

Bundle-Activator: just.a.broker.Activator 
Bundle-ActivationPolicy: lazy 
Bundle-RequiredExecutionEnvironment: JavaSE-1.7 
Require-Bundle: org.apache.activemq,\ 
    just.msg 

Import-Package: *,\ 
    javax.naming,\ 
    javax.xml,\ 
    javax.xml.parsers,\ 
    org.apache.log4j.xml,\ 
    org.osgi.framework 

Bundle-ClassPath: . 
Export-Package: just.a.broker 

희망을.

+0

감사합니다. 그것은 확실히했다! –