Gradle原型模板工具调研
为了方便小组里的同学快速创建新项目,并且保持框架及配置的一致性,维护了模板工程。接下来需要一个好用的工具来快速生成新项目。
模板工程基于Gradle,用不了Maven Archetype,需要另外找。
工具需要满足的条件
- 模板工程需要更新,能直接跑单元测试,所以工具不能限制工程结构,不能让模板工程来适应这个工具
- 模板工程放在公司内网,所以工具不能强制要求模板上传到工具自建的公网仓库
网上找了一些工具,目前找到的不太符合要求
- gradle-archetype-plugin:不符合条件1
- yeoman:不符合条件2
后来自建了一段小脚本及操作规范来解决这个问题
- 模板工程:1)包名唯一标识使用
prjName
,可定制,2)需要配置的地方注释里加上标记[config]
,可定制 - 执行自建的 dup_architype.sh 创建新项目
- 在IDE打开新项目,搜索
[config]
找到所有需要手动修改配置的地方,根据注释及上下文做出修改
dup_architype.sh 的大致执行流程:
- 把模板工程拷贝到指定的新项目所在路径,排除掉不需要的目录
- 重命名
prjName
这个唯一标识为自定义的业务名称 - 替换项目文件中的
prjName
为自定义的业务名称
dup_architype.sh 内容:
# template project absolute path SRC=/Users/sandynz/Documents/projects/boottemp/ # target project absolute path TARGET=/Users/sandynz/Documents/projects/prj1 # target project package name PKGNAME=prj1 # copy echo 'start copy' rsync -avz --exclude out --exclude build --exclude target --exclude .git --exclude .gradle --exclude .idea $SRC $TARGET # rename dir echo 'start rename dir' find $TARGET -name prjName -execdir mv {} $PKGNAME ';' # replace content echo 'start replace content' find $TARGET -type f -exec sed -i '' "s/prjName/$PKGNAME/g" {} \;
该脚本里的 SRC/TARGET/PKGNAME 都需要在执行之前修改。含义如下:
- SRC : 模板工程绝对路径
- TARGET : 目标项目绝对路径
- PKGNAME : 目标项目唯一标识,用于包名,不包含com.xyz.这样的前缀
脚本预设
- 工程使用 Gradle/Git/IntellijIDEA,不需要复制的目录已经在rsync参数排除掉;其它需要排除的目录可以添加--exclude自行排除
- 包名中的唯一标识是
prjName
(整体包名com.xyz.prjName),可自行定制
实际使用下来还算方便,简单有效。
相关推荐
CaesarHome 2020-11-09
chenkai00 2020-07-26
CaptainCTR 2020-07-09
afa0 2020-06-23
StephenWong 2020-06-18
chenkai00 2020-06-13
Lucianoesu 2020-06-08
tysforwork 2020-06-05
貌似掉线 2020-05-30
tysforwork 2020-05-27
CaptainCTR 2020-05-07
CaptainCTR 2020-05-04
貌似掉线 2020-05-03
CaptainCTR 2020-04-29
貌似掉线 2020-04-29
CaptainCTR 2020-04-23