首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用maven-bundle-plugin时形成.bnd文件?

如何在使用maven-bundle-plugin时形成.bnd文件?
EN

Stack Overflow用户
提问于 2016-07-07 08:33:43
回答 1查看 1.1K关注 0票数 0

我想构建osgi组件,并被告知使用maven-bundle-plugin。我一开始就把这个添加到我的pom.xml

代码语言:javascript
复制
        <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标记的<_include>文件。我听到人们说,这些文件应该保持在最低限度,甚至是空的,然后应该观察什么是进出口,等等。这是我感到困惑。我有我的MANIFEST.MF文件,其中我知道要导入和导出什么。但是,我需要一些帮助才能使我的.bnd文件正常工作。现在,我正在尝试使用空的.bnd文件,我不确定它是否正常工作。

有没有人对这个插件有任何经验,以及我想让它工作的方式?

例如,这里是一个示例.bnd文件。不过,我不知道他是怎么决定应该有这些进出口的。

到目前为止,当我尝试测试.jar时,我得到

代码语言:javascript
复制
no main manifest attribute, in bundle-1.0.0.jar

尽管.jar中确实存在.jar,但还是出现了错误。

更新:我认为我可以分享我以前的MANIFEST.MF,现在我想通过这个插件来生成它。

代码语言:javascript
复制
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文件更好呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-07 14:35:26

您的.bnd文件可能如下所示:

代码语言:javascript
复制
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

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38240884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档