V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
yeyuexia
V2EX  ›  分享创造

用 Python 做了一个模版管理器,欢迎大家来试用

  •  
  •   yeyuexia · 2017-03-12 21:58:27 +08:00 · 2004 次点击
    这是一个创建于 2573 天前的主题,其中的信息可能已经有所发展或是发生改变。

    因为项目需要,要做些项目模版方便之后使用,本来想用 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
    
    • uri 也可以是一个远程 git 地址

    根据模板创建工程

    abathur build -a name project_name
    
    • -a指定使用的模板名, 默认就会创建到当前位置上,文件夹的名字就是项目名称, 也可以用 -o 指定想要生成的位置

    list 和 remove

    abathur list
    
    abathur remove alias
    

    因为比较懒,目前只能用在 python3.6 以上的版本里。我在考虑要不要向下兼容 orz ,其实只用了 3.6 的 format 的 feature 。

    总之 欢迎大家来试试,提些反馈意见 orz 。

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2790 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 12:22 · PVG 20:22 · LAX 05:22 · JFK 08:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.