java创建一个未知长度的数组_为你的团队创建一个Java脚手架吧

面试的时候,对于资深岗位,我一般都会问候选人,有没有通过技术手段,提高团队的工作效率的案例。有些回答,自己开发过团队的中间件,有些回答自己,推动过团队规范落地。但是遗憾的是,更多的时候,候选人没有思考过这个问题,只把自己的手头的工作做好,没有想过技术影响力。

今天我们聊下项目原型。我第一次搭建项目原型的时候,是我参加工作后的第一年,从0搭建,大约两天的时间。项目结构,spring框架,orm,连接池,数据库,单元测试等等。

后来我开发过不少项目,搭建原型,大约也会花费半天的时间,主要是优化之前,本地保存的项目原型。但是团队中其他同学,搭建项目的时候,还是会花不少时间,同时各个项目的结构迥异,不利于团队管理。

后来团队中来了一个资深开发,他对maven比较熟悉,提到了maven项目原型,并在很短的时候,搭建了一个团队共享的脚手架。这些工作极大的解放了大家生产力,带来的具体影响是后面新开服务的时候,不再考虑项目搭建的时间。

下面我简单介绍下,如何搭建一个团队内,或者公司层面的脚手架。

官方文档移步:Maven – Guide to Creating Archetypes。本文主要侧重于工程实践。

第一步:我们准备一个比较完备的项目原型,此原型不包含具体业务逻辑,主要侧重于项目结构,常见的配置,工具包,以及框架优化。

d77def531942418971f48a382cbeed53.png

如上截图,我们的项目结构,是参考DDD领域模型,以及MVC分层,主要考量的是业务和技术隔离,以及业务逻辑分层合理。同时项目原型中,还包含我们团队的一些配置,比如分布式限速,分布式锁,异步组件,es组件,feign连接池,tomcat配置,日志规范等等。

第二步:执行mvn clean archetype:create-from-project

此时原型项目的target目录下,就是我们需要希望分享出去的原型文件。如下图

0a71339c6fc9c53a4019e58047b7ef7c.png

第三步:新开一个空的脚手架项目,用来管理原型文件,以及定制、发布原型。并将第二步的原型文件copy进去,项目结构如下

3d10601647588f0a34605a430b876ec5.png

注意需要将第二步的原型文件,copy到src/main/resources下。

f852b4be6e397017d9651ecbf24e7a99.png

第三步:修改原型文件的archetype-metadata.xml文件,增加requiredProperties,主要目的是,其他同学使用脚手架,搭建项目的时候,包名、项目坐标可以自由定制。

298187b218087319901c73f86504fd5c.png

再者 修改原型文件的pom.xml中的groupId,artifactId,version等信息替换成变量,和requiredProperties中保持一致。

5b2abc0a387d4fd90b8ea7b5694318ae.png

第四步,发布脚手架 jar到私服。

修改脚手架项目的pom增加,公司的私服地址,配置好账户,密码。就可以发布到私服上去了。

413264aaeae5bfc9cf69ca3368ba3fd8.png

第五:使用脚手架,搭架自己的服务。

简单在写一个脚本,创建自己的项目了脚本如下:

8e32a68994da49f1617a8f2330233ac0.png

执行脚本,至此大约1分钟就可以根据脚手架,创建一个新的项目了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值