自动化编译说明书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Findbugs2.0.3编译说明
【问题现象】
1)Findbugs plugin使用自定义的build.xml,如何在PDE编译框架上实现自动化编译
2)Findbugs plugin在自动化编译的时候,如何解决依赖的本体jar包
3)Findbugs plugin在自动编译的时候如何提供本体src和pluginsrc
4)Findbugs plugin编译的产物中如何去掉开源的信息,例如vendor信息,plugin id等
【解决方法】
1)PDE编译框架下,如果将待编译的插件申明在已有的feature.xml文件中,那么PDE在编译feature 的时候能够自动编译feature.xml中申明的插件
2)Findbugs plugin使用自定义的build.xml,可以利用PDE允许编译中调用用户自定义行为的特点,直接调用自定义的xml文件即可(细节可以参考javaee6的src打包)
3)plugin的编译需要依赖本体,可通过编译服务器上提供的下载代码功能,将本体下载至本地
4)src打包的功能需要在已有的build.xml重新定义
5)修改MANIFEST文件中关于对插件的描述部分
具体实现方法如下
【自动编译的实现】
1 修改build.properties文件
目的是使得PDE工具在编译该插件的时候,使用用户自己定义的build.xml
2 提供满足PDE接口的build.xml
注:创建方法如下:
(1)暂时去掉build.properties中custom=true的定义
(2)使用PDE工具编译该插件(编译会失败)
编译过程中自动生成的build.xml可以作为模板,去掉大部分不用
主要修改如下:
表1 定义的变量
①②定义之后,生成的jar包名称即为com.fujitsu.interstage.ide.findbugs_2.0.3.jar
表2 定义的
(1)
--clean:清空
--build:编译
--srcZip:src打包
(2)
--调用target="build.findbug",编译本体
--调用buildFbPlugin.xml,进行clean
--调用buildFbPlugin.xml,进行编译
(3)
3 将findbug添加到FJPlugin工程中
在com.fujitsu.interstage.ide.platform.core-feature的feature.xml文件中添加如下表3 添加到feature工程
注:表示com.fujitsu.interstage.ide.findbugs需要unpack
4 定义变量eclipsePlugin.dir
在buildEnv\FJPlugin\com.fujitsu.releng.builder\build.properties中添加如下
5
在buildEnv\FJPlugin\src\eclipse\build\build.fjplugin-sdk.properties中添加
【本体编译工程的修正】
1 工程名称的修正
将library.findbugs导入到eclipse中,显示的project名称为findbugs,因此作如下修改
2 添加src打包功能
3 修改删除功能
默认的删除动作会删除
|--plugin
| |--findbugsCommunalCloud.jar, webCloudClient.jar
|--optionalPlugin
| |--bugCollectionCloud.jar, noUpdateChecks.jar, poweruser.jar
编译中需要保留上面的jar,所以修改build.xml如下
【plugin编译工程的修正】
1 正确处理qualifier
默认认为插件版本都为‘[数字版本]. qualifier’的形式,当不存在‘qualifier’字段的时候,原有的xml 将无法实现替换,所以需要修改
修正对象为:com.fujitsu.interstage.ide.findbugs/buildFbPlugin.xml
修改上述代码之后,MANIFEST.MF中Bundle-Version字段的变化为如下
注:如果不进行代码的修正,当version时此种情况时候,执行会报错
2 src打包
修正对象为:com.fujitsu.interstage.ide.findbugs/buildFbPlugin.xml
3 工程名称的修正
将com.fujitsu.interstage.ide.findbugs导入到eclipse中,显示的project名称为findBugsEclipsePlugin,因此作如下修改
4 依赖classpath的修正
同时导入com.fujitsu.interstage.ide.findbugs和library.findbugs到eclipse中,