zoukankan      html  css  js  c++  java
  • 编写命令行工具

    1、使用common-cli编写命令行工具

    commons-cli是Apache开源组织提供的用于解析命令行参数的包。

    先引用common-cli依赖包:

    <groupId>commons-cli</groupId>
    <artifactId>commons-cli</artifactId>
    <version>1.2</version>

    命令定义:

    private static final Options OPTIONS = new Options();
    
    public void defineCommand() {
         OPTIONS.addOption("i", true, "the input directory where the proto files are");
         OPTIONS.addOption("o", true, "the output directory which is the output path");
         OPTIONS.addOption("c",true,"whether we use config.json or not");
    
         OPTIONS.addOption("groupId",true,"maven project related parameter");
         OPTIONS.addOption("artifactId",true,"maven project related parameter");
         OPTIONS.addOption("artifactVersion",true,"maven project related parameter");
    
         OPTIONS.addOption("h", true ,"get command input help");
         OPTIONS.addOption("help", true ,"get command input help");
    }

    命令解析:

    CommandLine cli = parser.parse(OPTIONS, args);
    if (cli.hasOption("c")) {
         //TODO:  
    }

    执行命令:

    java -jar common-cli-demo-1.0-SNAPSHOT.jar -c c:clidemo1config.json

    config.json:

    {
      "groupId": "common.cli.demo",
      "artifactId": "cli-demo",
      "artifactVersion": "demo-snapshot",
      "outputDirectory": "c"
    }

    config.json文件名可以随意,如果不指定就读取默认的配置。

    2、使用mustache模版 

    mustache参考地址:Github地址

    模板文件generator.mustache:

    <?xml version="1.0" encoding="GBK"?>
    <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
    <properties>
    
        <entry key="base_package">{{base_package}}</entry>
        <!--配置实体包路径-->
        <entry key="base_entity_package">{{base_entity_package}}</entry>
        <!--配置mybatis Mapper包路径-->
        <entry key="base_mapper_package">{{base_mapper_package}}</entry>
    
    </properties>

    默认模板参数配置xmltemplate.json:

    {
      "base_package": "com.demo.package",
      "base_entity_package": "com.demo.package.entity",
      "base_mapper_package": "com.demo.package.mapper"
    }

    自定义模板的参数配置xmltemplate.json:

    {
      "base_package": "com.test.demo.package",
      "base_entity_package": "com.test.demo.package.entity.testDb",
      "base_mapper_package": "com.test.demo.package.mapper.testDb"
    }

    指定配置文件

    执行命令:

    java -jar common-cli-demo-1.1-SNAPSHOT.jar -c c:clidemo2 emplate.json -o c:clidemo2

     填充模板生成的xml文件为:

    <?xml version="1.0" encoding="GBK"?>
    <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
    <properties>
    
        <entry key="base_package">com.test.demo.package</entry>
        <!--配置实体包路径-->
        <entry key="base_entity_package">com.test.demo.package.entity.testDb</entry>
        <!--配置mybatis Mapper包路径-->
        <entry key="base_mapper_package">com.test.demo.package.mapper.testDb</entry>
    
    </properties>

    不指定配置文件(使用默认的配置)

    执行命令:

    java -jar common-cli-demo-1.1-SNAPSHOT.jar -o c:clidemo2

     填充模板生成的xml文件为:

    <?xml version="1.0" encoding="GBK"?>
    <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
    <properties>
    
        <entry key="base_package">com.demo.package</entry>
        <!--配置实体包路径-->
        <entry key="base_entity_package">com.demo.package.entity</entry>
        <!--配置mybatis Mapper包路径-->
        <entry key="base_mapper_package">com.demo.package.mapper</entry>
    
    </properties>

    示例:common-cli-demo 

  • 相关阅读:
    【转】VS2013编译libjpeg库
    玩转百度地图(二)之画圆,高德地图、搜搜地图、搜狗地图等稍微修改即可
    JAVA自动生成正则表达式工具类
    S2SH商用后台权限系统第三讲
    自定义表单验证指令
    关于input/textarea提交内容空格回车转换问题,以及ng-model去除空格问题
    angular ui-router 缓存问题
    ionic 发送请求返回一直都是404
    ionic中获取坐标方法
    ionic的scroll的使用出现的问题
  • 原文地址:https://www.cnblogs.com/mr-yang-localhost/p/9000445.html
Copyright © 2011-2022 走看看