liferay7中osgi学习

参考:mosmithosgi笔记博客,网址:http://www.cnblogs.com/mosmith/p/5465489.html


bnd.bnd文件值如下:

Bundle-Name: tagTest
Bundle-SymbolicName: com.liferay.map.taglib
Bundle-Version: 1.1.3
Export-Package: com.liferay.map.taglib.servlet.taglib
Provide-Capability:\
    osgi.extender;\
        osgi.extender="jsp.taglib";\
        uri="http://liferay.com/tld/map";\
        version:Version="${Bundle-Version}"
Web-ContextPath: /map-taglib


1 Bundle-SymbolicName和Bundle-Version

Bundle-SymbolicName和Bundle-Version用于唯一标识一个Bundle,在Require-Bundle中被使用,大多数情况下,osgi还是在使用package作为import的标识的。


如:

Bundle-SymbolicName: com.liferay.map.taglib 
Bundle-Version: 1.1.3


会产生:com.liferay.map.taglib-1.1.3.jar的jar包


2 Export-Package用于暴露bundle内部的类,多个包名之间用逗号隔开","同时,包名可以用";"隔开并加上限定的Attribute,

Export-Package: org.foo.shape; vendor="Manning", org.foo.other;

是内部向外部暴露的内部类


3 Import-Package用于导入在运行时bundle所依赖的类。但java.*开头的类比较特殊,它自动地对所有的bundle都是可见的,因此我们不需要也无法插手这一点。

Import-Package: org.osgi.framework; version="[1.3.0,2.0.0)"

4 Mandatory directive用于指定Export-Package中,Import-Package在进行bundle 匹配的时候必须进行匹配的属性,如果属性不存在或者匹配不上,那么将不会import 这个package。比如下面的例子:

Export-Package: javax.servlet; version="2.4.1"; private="true";
mandatory:="private"

那么在Import-Package的时候必须指定这个private属性才能import成功:

Import-Package: javax.servlet; version="[2.4.0,2.5.0)"; private=true

Exclude Directive用于从Export-Package中过滤掉(屏蔽)一些类,如下,org.foo.service.Util将不会被导出,Exclude Directive支持通配符*:

Export-Package: org.foo.service; version="1.0.0"; exclude:="Util"

同样Include Directive用于指定Export-Package中进行导出的类:

Export-Package: org.foo.service; version="1.0.0"; include:="Service*"


5  gradle下cmd运行

eclipse新建项目后,可以在cmd下运行,打开cmd,cd到目录,之后输入gradle clean或者gradle deploy即可。



6 模块项目部署

liferay7下liferay module project,的部署,如果是gradle项目,直接eclipse 下项目右面build-deploy即可。如果是maven项目,直接项目右键,maven install即可,之后把项目生成的jar包放到服务器的deploy下面即可。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值