
因为项目需要,要做些项目模版方便之后使用,本来想用 yeoman 的,最后想了想还是自己撸了个模版管理工具出来,给大家分享下。支持模版的添加,查看,删除和使用指定模板创建工程的方法,支持本地模板和远程 git 的模版。 项目地址在这儿: https://github.com/yeyuexia/abathur
pip install abathur 首先有一个模板项目目录结构类似
template/src ├── main │ ├── java │ │ └── com │ │ └── abathur │ │ └── {PROJECT_NAME} │ │ └── {PROJECT_NAME_IN_CLASS}Application.java │ │ ├── domain │ │ │ ├── entity │ │ │ │ └── {PROJECT_NAME_IN_CLASS}.java │ │ │ ├── repository │ │ │ │ └── {PROJECT_NAME_IN_CLASS}Repository.java │ │ │ └── service │ │ │ └── {PROJECT_NAME_IN_CLASS}Service.java │ │ ├── facade │ │ │ ├── {PROJECT_NAME_IN_CLASS}DtoMapper.java │ │ │ └── {PROJECT_NAME_IN_CLASS}Facade.java │ │ ├── infrastructure │ │ │ └── persistence │ │ │ ├── {PROJECT_NAME_IN_CLASS}Po.java │ │ │ └── {PROJECT_NAME_IN_CLASS}Repository.java │ │ └── resource │ │ └── {PROJECT_NAME_IN_CLASS}Resource.java │ └── resources │ └── application.yml └── test ├── java │ └── com │ └── abathur │ └── {PROJECT_NAME} │ └── resource │ └── {PROJECT_NAME_IN_CLASS}ResourceTest.java └── resources {}包裹的都是需要替换的关键字。其中会提供一个默认的关键字{PROJECT_NAME}默认替换为项目名称,也可以自己改它。
然后创建一个.abathur的文件放在模板项目的根目录,里面把项目里所有用到的关键字列出来
cat .abathur PROJECT_NAME_IN_CLASS TABLE_NAME 模板管理器每次创建项目的时候就回去读这些配置然后让你去 override 它们。
abathur add alias ~/template abathur build -a name project_name -a指定使用的模板名, 默认就会创建到当前位置上,文件夹的名字就是项目名称, 也可以用 -o 指定想要生成的位置abathur list abathur remove alias 因为比较懒,目前只能用在 python3.6 以上的版本里。我在考虑要不要向下兼容 orz ,其实只用了 3.6 的 format 的 feature 。
总之 欢迎大家来试试,提些反馈意见 orz 。