Linux安全网 - Linux操作系统_Linux 命令_Linux教程_Linux黑客

会员投稿 投稿指南 本期推荐:
搜索:
您的位置: Linux安全网 > Linux集群 > Architecture > » 正文

Bnd - Bundle Tool(3)

来源: 未知 分享至:

命令行

命令行可使用几种方式来执行:

  • bnd general-options cmd cmd-options
  • bnd general-options <file>.jar
  • bnd general-options <file>.bnd

全局选项

全局选项 说明
-failok 和-failok属性是相同的,默认情况下即使出现错误也会完成打包。
-exceptions 当打包时出现导致程序退出的致命错误时打印出此异常信息。默认情况下只打印了异常的简要信息,添加此选项可打印出详细的异常堆栈信息,这对于调试和查找错误原因是非常有帮助的。

print ( -verify | -manifest | -list | - all ) * <file>.jar +

print可用于查看JAR文件的某些信息,以下的信息可通过print来查看:

  • -verify - 验证jar包是否符合OSGi 规范的要求,如不符合则会在控制台中显示错误信息。
  • -manifest - 显示jar包中的manifest.mf文件的信息。
  • -list - 列出jar包中文件的信息。
  • -all -执行以上所有的动作(默认就是-all)。

使用示例: bnd print -verify *.jar

build ( -classpath LIST | -eclipse <file> | -noeclipse | -output <file> ) * <file>.bnd +

build可用于按照bnd的描述打包生成bundle文件。默认输出的bundle的文件名为bnd文件的文件名+.jar。 可用的参数有:

  • -classpath - 放入classpath中的jar文件或目录。
  • -eclipse - 把指定的文件作为eclipse的.classpath文件而使用,如使用了此参数,则默认的.classpath文件不会被读取。
  • -noeclipse -不解析Eclipse工程下的.classpath文件。
  • -output -覆盖输出的Bundle的文件名或目录。如果指定的值为目录,那么输出的bundle的文件名也将会采用这个目录名。

bnd build -classpath bin -noeclipse -output test.jar xyz.bnd

wrap ( -classpath (<file>(\',\'<file>)*)-output <file|dir> | -properties <file> ) * -ignoremanifest? <file>.jar *

wrap命令用于将一个已存在的jar文件转换为符合OSGi 规范的Jar文件或合并到已存在的bundle中。如输出的文件不可覆盖,则会生成一个以.bar结尾的文件。默认的bnd文件信息为:
Export-Package: *
Import-Package: <packages inside the target jar>

如果目标bundle有manifest文件,那么两者的头信息将合并。 默认值可使用properties文件进行覆盖。

  • -output - 设置输出的文件名或目录名。
  • -classpath - 设置classpath。
  • -properties - 设置manifest.mf需要用到的属性文件。
  • -ignoremanifest - 不包含目标Bundle本身的manifest的信息。

bnd wrap -classpath osgi.jar *.jar

eclipse

打印出当前目录下Eclipse工程的信息。
bnd eclipse

Eclipse插件

只需将bnd.jar文件放入eclipse/plugins目录并重启eclipse即可完成安装。安装完这个插件后在以.bnd作为扩展名的文 件上点右键即可看到\'Make Bundle\'菜单,如在jar文件上点击右键,则有两个菜单可选择:\'Wrap JAR\'用于将此JAR文件生成一个包含了所有imports和所有exports的bundle;\'Verify Bundle\'用于校验此JAR文件是否符合OSGi Bundle的规范,如有错误或警告信息均会以对话框的形式显示。

Ant Task

bnd.jar也可作为ANT task使用。下面的例子演示了如何在ANT文件中使用bnd.jar:
<target name=\"build\">
<taskdef resource=\"aQute/bnd/ant/taskdef.properties\"
classpath=\"bnd.jar\"/>
<bnd
classpath=\"src\"
eclipse=\"true\"
failok=\"false\"
exceptions=\"true\"
files=\"test.bnd\"/>
</target>

在此ANT task中可设置以下属性:

属性名 说明
classpath 相对于ant工程文件的路径。
eclipse True代表解析Eclipse的.classpath文件,也就是和eclipse工程采用同样的classpath;false代表不解析Eclipse的.classpath文件。
failok true代表即使出现错误,也生成Bundle文件;false代表当出现错误时,则不生成Bundle文件。
exceptions false代表出现错误时,仅显示错误的简要描述;true代表出现错误时,显示详细的错误堆栈信息。
files bnd文件。
sourcepath 源码所在路径。
output 文件输出的路径。

还可在Ant中使用以下的Task:

task名 类名 属性
bndeclipse EclipseTask prefix=\'project.\'
bndexpand ExpandPropertiesTask propertyFile=\'<file>\'
bndwrap WrapTask jars=\'<list>\', output=\'<dir>\', definitions=\'<dir>\', classpath=\'<file-list>\'

Maven Plugin

在Felix maven plugin中有关于此maven plugin的描述,maven plugin中默认的值为:
Bundle-SymbolicName : <groupId>.<artifactId>
Bundle-Name: project.getName();
Bundle-Version: <version>
Import-Package: *
Export-Package: <groupId>.<artifactId>.* (unless Private-package is set)
Bundle-Description: project.getDescription()
Bundle-License: project.getLicenses()
Bundle-Vendor: project.getOrganization()
Include-Resource: src/main/resources

错误和警告信息

有很多种错误和警告信息,看到信息就知道错误和警告的原因了。


Tags:
分享至:
最新图文资讯
1 2 3 4 5 6
验证码:点击我更换图片 理智评论文明上网,拒绝恶意谩骂 用户名:
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史