选型初期采用maven形式管理项目,并采用shade方式给产品打jar包,并结合jenkins完成自动构建,由于其独特的打包方式:将所以依赖的jar包,先解压缩,然后按照包路径连带项目源码一起,合并在一起,生成一个可执行的jar包。此方式下,最终可执行的jar包,体积很大。在打包的过程中,由于先解析所有依赖jar结构,而后再合并在一起,效率上略微低下。在部署的过程中,jar的运行环境配置需要二次编写维护执行,在项目分发的过程中,并非一个标准化的操作。
基于以上几点,决定由assembly的插件替代shade方式。具体的配置过程也是相当的简单,顺手做了一个小例子:项目分发、打包效率、构建部署等都有很好的提升。
近几年微服务的呼声高涨,在项目包的构建分发层面,也有网友给出更加标准化的方案,构建出linux环境的rmp安装包,像安装linux工具一样便捷。当然更多的是基于docker容器,基于docker自身的优势,更高效的部署、扩展项目。
可以依赖myeclise的自动编译,可以通过ide的export方式导出,可以通过ant方式编译构建,可以通过maven\gradle方式构建打包等等,方式很多,适合自己的才是最好的。