欢迎使用普元产品知识库,本知识库包含普元应用开发平台EOSPlatform,流程平台BPS,企业服务总线ESB,微服务平台Microservice,运维管理平台Devops,数据集成平台DI

页面树结构

欢迎使用普元文档库

Skip to end of metadata
Go to start of metadata

很久没有写知识点了,鉴于最近公司很多定制产品需要针对Eclipse Studio的Label和图片进行定制,现将为某项目组编写的一个半自动化工具分享给大家,之所以说是半自动化,是因为现在的这个工具考虑的还不够全面:
1.很多地方还需要手动完成
2.手动的配置文件比较麻烦
暂时把这个小工具称作为FAB1.0(Fragment Auto Buildor)吧,不久的将来会出1.1插件版,那时候将会将现在大多数手动过程完全自动化实现,敬请关注

背景

进入2010以后,咱们公司的定制化项目如雨后春笋一般,而且很多项目都有一个共同的需求,需要对Studio当中的Label和图片进行替换,而且要求不修改任何已有的EOS产品或者BPS产品的插件代码为前提

解决方案

  1. 首先需要Studio当中的所有Label进行国际化
    这要感谢我们的EOS6.1团队,由于他们先前的不懈努力,这个过程已然完成,虽然仍有部分应为Label没有国际化,但是这已微不足道了。
  2. Studio对于属性或者类文件优先使用段插件
    Eclipse标准发布的产品都是优先加载插件当中的类和资源的,如果我们希望Fragment(段插件)当中的资源被优先使用的话,就必须修改这个加载顺序,这个王磊大哥在JIRA问题EOSP-205当中有完备的解决方案,稍后我会将大哥的设计思路和问题思考在另一个知识点当中详细阐述,然后再把链接放到这里,这里就不再赘述了
  3. 为每一个需要定制的插件建立段插件
    因为有了第二步,第三步就是要为所有的需要定制Label和图片的插件生成段插件,并且在生成过程中将需要替换的文本以及图片替换进去。后面会详细说明该工具的使用方法。
  4. 定制platform插件
    platform插件是相对比较独立的插件,这是对我们Studio产品的概述的插件,里面的图片和属性需要手动替换,主要是启动时的logo图片等。
  5. 定制exe文件图标
    在定制产品时有时需要替换exe文件当中的ico文件,这个在网上有许多相关工具,这里就不赘述了。仅提供一个exe编辑器,方便大家替换ico文件

Fragment插件自动生成工具的使用方法

  1. 下载附件中的fragment.build,解压到任意目录下;
  2. 打开fragment.build目录,如下图,有许多配置文件需要手动配置

    第一个需要配置的是input.properties文件,属性有:

    #所有文件需要使用"UTF-8"编码,这样可以支持各种字符作为property的key
    #该配置文件作为main的方法参数传入
    #源插件路径,需要替换的插件源(必须配置)
    plugin_home_path=D:\\primeton\\EOS_6.1_GA\\ide\\eostools
    #目标插件路径,指生成的段插件放置的位置(必须配置)
    nls_home_path=D:\\eostools.nls
    #用于替换properties的模板,属性当中需要替换的文字的映射关系
    #例如有一个属性ATEST=普元软件,现在需要将"普元"替换为"SCE"
    #则在property.properties文件中用Unicode编码编写\u666e\u5143=SCE ;(必须配置)
    temp_properties=D:\\fragment.build\\property.properties
    #不需要替换的插件的列表,插件ID之间用","(英文逗号隔开,这里提供了一些默认不需要创建fragment的插件以供参考,不是必须的)
    with_out_plugins=D:\\fragment.build\\withoutPlugin.properties
    #图片存放路径(必须配置)
    icons_path=D:\\fragment.build\\icons
    #图片替换对性关系(必须配置)
    icons_properties=D:\\fragment.build\\icons\\icons.properties
    #部分classpath超过1个插件需要指定fragment的classpath,没有指定则设置为插件原有的classpath(不是必须的)
    class_path_properties=D:\\fragment.build\\classpath.properties
    

    第二个需要配置的文件为property.properties文件,上面也简单介绍了这个替换过程,

    #属性请用UTF-8编码,这样可以支持一些特定字符
    #下面是示例代码
    #替换时将所有property当中等号左边的值替换成等号右边的值
    EOS=yujl
    \u666e\u5143=SCE
    \uff01@#\uffe5%\u2026\u2026&*\uff08\uff09\uff08*&\u2026\u2026%\uffe5#=@#\uffe5%\u2026\u2026&*\uff08*&\u2026\u2026%\uffe5#@#%\u2026\u2026&
    

    这里需要详细说明一下:

    • 这里是对所有插件的所有"*.properties"文件中的值的部分匹配内容进行的替换,分词操作相对简单,只要找到与上述文件中key值相同的就替换,这样是有风险的,比如"光普元素",如果使用上述配置当中的替换方式,则替换后会显示"光SCE素",这就违背了原有文字的意思,好在目前使用过程中没有这种问题出现,未来1.1版本中会改进此问题。
      第三个需要配置的文件为".\icons\icons.properties",这个文件是用来配置插件中的图片与将要替换的图片之间的映射关系。这个文件的配置需要谨慎,稍有配置错误,就会替换不成功,具体配置示例如下:

      #左边是插件当中的图片,右边是用来替换的图片,右边图片路径是相对于input.properties中设置的iconspath路径
      com.primeton.studio.navigator_6.0.0.jar\\icons\\eview16\\explorer.png=explorer.gif
      
  3. 执行fragmentbuild.bat自动生成段插件组
  4. 到eclipse home的links目录下配置"eostools_nls.link"文件
    文件内容为path=D:\eostools.nls(路径为段插件组所在的位置)

完成上述操作后就完成了段插件的生成,启动Eclipse检查一下图片文字是否替换成功

总结与思考

上述功能基本实现了Studio的Label和图片以及logo等定制,但是仍有不少不理想的地方:

  1. 操作过于繁琐,尤其是属性文件的配置,稍有不慎就会配置错误。
  2. 没有可视化界面,体验比较差
  3. fragment优先加载存在风险
  4. 自动化过程缺少必要的日志,不易监控
  5. 简单的过滤不需要的插件是有风险的

将来在1.1会根据上述不足进行修改

6 评论

  1. 未知用户 (caozw) 发表:

    工具甚好

    为我们节省了大量的时间

    中信、国开都要使用,后续有订制项目也可以使用,前途光明!

  2. 未知用户 (yujl) 发表:

    由于对工具本身测试的不够给TX们带来的不便请请谅解,根据以后大家的使用情况,我会在这个知识点里实时更新最新的生成工具。

    最后感谢小曹团队首先使用工具,使工具渐趋稳定。

  3. 未知用户 (qinjw) 发表:

  4. 未知用户 (yujie) 发表:

    替换的是配置文件中所有匹配的内容,希望替换的是VALUE中的,如果KEY也是一样,会不会有风险啊?

    比如EOS_NAME=EOS文件名,用工具后是不是KEY和VALUE中的EOS都换掉了啊?

  5. 未知用户 (yujl) 发表:

    当然只会替换value值啦,如果替换key不是有风险问题,而是根本不能用的

  6. 未知用户 (yangbt) 发表:

    这个绝对是5星级的