资讯专栏INFORMATION COLUMN

Gradle原型模板工具调研

刘德刚 / 564人阅读

摘要:为了方便小组里的同学快速创建新项目,并且保持框架及配置的一致性,维护了模板工程。模板工程基于,用不了,需要另外找。

为了方便小组里的同学快速创建新项目,并且保持框架及配置的一致性,维护了模板工程。接下来需要一个好用的工具来快速生成新项目。

模板工程基于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),可自行定制

实际使用下来还算方便,简单有效。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/73722.html

相关文章

  • 基于IDEA Plugin插件开发,撸一个DDD脚手架

    摘要:作者小傅哥博客沉淀分享成长,让自己和他人都能有所收获接下来还需要把我们创建的工程模板以及数据服务配置到中,这样在插件启动的时候就可以把我们自己插件启动起来了。作者:小傅哥博客:https://bugstack.cn沉淀、分享、成长,让自己和他人都能有所收获!???? 接下来还需要把我们创建的工程模板以及数据服务配置到 plugin.xml 中,这样在插件启动的时候就可以...

    不知名网友 评论0 收藏0
  • 从用 AngularJS 开发 PC 客户端说起

    摘要:你们说能不能就用的开发模式来实现客户端啊这样版版版就都有了。有道云笔记可能就是最贴近我们想法的产品,有客户端,有版。这个项目由发起和维护。 最近一个多月一直在用 AngularJS 做公司的一个项目(还没有做完),我之前主要是用 PHP 开发服务端的,AngularJS 也是现学现卖,整个过程还是比较有意义的,觉得很有必要写篇文章记录一下。 缘起 事情是这样的……我们团队的产品是一款 ...

    waltr 评论0 收藏0
  • 从用 AngularJS 开发 PC 客户端说起

    摘要:你们说能不能就用的开发模式来实现客户端啊这样版版版就都有了。有道云笔记可能就是最贴近我们想法的产品,有客户端,有版。这个项目由发起和维护。 最近一个多月一直在用 AngularJS 做公司的一个项目(还没有做完),我之前主要是用 PHP 开发服务端的,AngularJS 也是现学现卖,整个过程还是比较有意义的,觉得很有必要写篇文章记录一下。 缘起 事情是这样的……我们团队的产品是一款 ...

    Reducto 评论0 收藏0
  • Android Studio3.0新特性及安装详解

    摘要:许多新的棉绒检查。如果程序在断点上暂停,则应用程序重新启动。新的中的新型提供了对应用程序活动的实时统一视图。要打开,请按照下列步骤操作单击视图工具您也可以在工具栏中单击。从工具栏中选择要配置的设备和应用程序进程。这样基本上就顺利安装了。 简介: Android Studio是Android的官方IDE。它是专为Android而打造,可以加快您的开发速度,帮助您为每款Android设备构...

    DDreach 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<