[发明专利]编译期的代码注入方法在审
申请号: | 202110051610.4 | 申请日: | 2021-01-13 |
公开(公告)号: | CN112817598A | 公开(公告)日: | 2021-05-18 |
发明(设计)人: | 于亚丰;覃兆俊;陈立;何国平;宋修虎;陈怀狮;王永平;徐志安;严伟;赵丽丽;周强;钱华;陈依婷 | 申请(专利权)人: | 浙江华云信息科技有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/72 |
代理公司: | 杭州华鼎知识产权代理事务所(普通合伙) 33217 | 代理人: | 项军 |
地址: | 310008 浙江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 编译 代码 注入 方法 | ||
1.编译期的代码注入方法,其特征在于,所述方法包括:
在目标项目中确定替换代码所在包的依赖关系,基于依赖关系对替换代码进行编译,得到class打包文件;
将replaced-proj插件添加至Maven管理工具中,在Maven管理工具中对class打包文件进行解析得到替换代码,对依赖库进行遍历,判断是否存在可替换代码集合;
如果存在,则将替换代码写入目标项目的预设路径。
2.根据权利要求1所述的编译期的代码注入方法,其特征在于,所述在目标项目中确定替换代码所在包的依赖关系,基于依赖关系对替换代码进行编译,得到class打包文件,包括:
在目标项目中确定并添加替换代码所在包的依赖关系;
使用标准的包结构组织编写替换代码逻辑;
在Maven管理工具中基于得到的替换代码逻辑进行编译,生成class文件;
在Maven管理工具中对得到的class文件进行打包得到class打包文件。
3.根据权利要求2所述的编译期的代码注入方法,其特征在于,所述在目标项目中确定并添加替换代码所在包的依赖关系,包括:
统一修改HTTP请求的host文件,在host文件中的profile字段中增加替换代码所在包的依赖关系。
4.根据权利要求2所述的编译期的代码注入方法,其特征在于,所述在Maven管理工具中基于得到的替换代码逻辑进行编译生成class文件,包括:
复制编写的代码到src/test/java及src/test/resources下;
执行Maven管理工具的compile完成编译;
复制编译后的class及资源文件到src/main/resources/替换类库的groupId#替换类库的artifact#替换类库的version下。
5.根据权利要求1所述的编译期的代码注入方法,其特征在于,所述将replaced-proj插件添加至Maven管理工具中,在Maven管理工具中对class打包文件进行解析得到替换代码,对依赖库进行遍历,判断是否存在可替换代码集合,包括:
添加replaced-proj插件:将replaced-proj作为标准的Maven插件添加到target-proj的Maven Build下;
执行Maven的compile命令,触发inject-plugin中的注入操作;
打包并发布,执行Maven的打包及发布命令,完成target-proj的处理。
6.根据权利要求5所述的编译期的代码注入方法,其特征在于,所述执行Maven的compile命令,触发inject-plugin中的注入操作,包括:
解压replaced-proj获取可替换的代码:获取replaced-proj中的src/main/resources/下编译后的可替换的代码集合,记作c1;
分析目标项目的依赖类库:获取当前项目的所有依赖类库,记作c2;
依赖类库与可替换的代码取交集,确定要替换的代码:遍历依赖类库集合c2,对比是否存在于结果集合c1中。
7.根据权利要求1所述的编译期的代码注入方法,其特征在于,所述如果存在,则将替换代码写入目标项目的预设路径,包括:
如果存在则表示当前为要替换的代码;
将确定要替换的代码写入target/classes中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江华云信息科技有限公司,未经浙江华云信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110051610.4/1.html,转载请声明来源钻瓜专利网。