Skip to content

ArbitraryGen参数配置详解

Albie Liang edited this page Dec 20, 2017 · 16 revisions

首先我们先看下ArbitraryGen里面都有哪些参数配置:

arbitraryGen {
    templateDir "${project.rootDir.getAbsolutePath()}/ArbitraryGen/template-libs"
    srcDir "${project.projectDir.absolutePath}/ag-datasrc"
    destDir "$buildDir/generated/source/ag-gen"

    logger {
        debug true
        toFile true
        printTag true
        path "$buildDir/outputs/logs/ag.log"
    }

    statistic {
        toFile true
        path "$buildDir/outputs/logs/ag.statistic"
    }

    general {
        enable true
        // suffix list
        format "xml","db","greendao", "event" // Use XML format parser.
        parser {
            jar "${project.rootDir.getAbsolutePath()}/ArbitraryGen/arbitrarygen-demo-wrapper.jar"
            tClass "cc.suitalk.tools.arbitrarygen.demo.greendao.GreenDaoParser"
        }
        extension {
            // jar list
            jar "${project.rootDir.getAbsolutePath()}/ArbitraryGen/arbitrarygen-demo-wrapper.jar"
            // class list
            tClass "cc.suitalk.tools.arbitrarygen.demo.ExternalTemplateConverter",
                    "cc.suitalk.tools.arbitrarygen.demo.EventTemplateWrapper",
                    "cc.suitalk.tools.arbitrarygen.demo.ExternalTemplateWrapper",
                    "cc.suitalk.tools.arbitrarygen.demo.greendao.GreenDaoConverter"
        }
    }

    scriptEngine {
        enable true
        format "e"
    }

    javaCodeEngine {
        enable true
        rule "${project.projectDir.absolutePath}/src/main/java/*.java"
        ruleFile "${project.projectDir.absolutePath}/ag-datasrc/parse-project.rule"

        // external jar and class of customize type-define wrapper or customize annotation processor
        extension {
            jar "${project.rootDir.getAbsolutePath()}/ArbitraryGen/arbitrarygen-demo-wrapper.jar"
            // customize annotation processor
            pClass "cc.suitalk.tools.arbitrarygen.demo.processor.TestAGAnnotationProcessor"
        }
    }

    // external engine argument
    engine {
        // external jar and class of customize engine
        extension {
            jar "${project.rootDir.getAbsolutePath()}/ArbitraryGen/arbitrarygen-demo-engine.jar"
            tClass "cc.suitalk.tools.arbitrarygen.demo.TestEngine"
        }
        // example engine
        testEngine {
            enable false
            map {
                test 1
            }
        }
    }

    // external processor argument
    processor {
        // external jar and class of customize engine
        extension {
            jar "${project.rootDir.getAbsolutePath()}/ArbitraryGen/arbitrarygen-demo-engine.jar"
            tClass "cc.suitalk.tools.arbitrarygen.demo.TestProcessor"
        }
        // example processor
        testProcessor {
            message "do smothing"
        }
    }

}

下面我们一一列出每个参数的意义:

必要参数(必填):

字段 描述 数据类型
templateDir 模板目录 String
srcDir 数据源目录 String
destDir 存放生成代码的目标目录 String

日志输出参数:

字段 描述 数据类型
logger.debug 是否debug模式,debug模式将输出log到控制台 Boolean
logger.toFile 是否将log输出到文件中 Boolean
logger.printTag 是否打印TAG Boolean
logger.path log文件路径 String

统计日志参数:

字段 描述 数据类型
statistic.toFile 是否将log输出到文件中 Boolean
statistic.path 统计数据文件路径 String

基本功能参数:

字段 描述 数据类型
general.enable 是否开启AG基本生成代码能力 Boolean
general.format 基本代码生成模块处理的文件后缀 String Array
general.parser 自定义的数据源解析器 Object
general.parser.jar 自定义的数据源解析处理器,引入的外部扩展jar包 String Array
general.parser.tClass 自定义的数据源解析处理器,需要动态加载的目标Class String Array
general.extension 自定义扩展,包括CustomizeParser、CustomizeConverter和TemplateWrapper Object
general.extension.jar 自定义扩展,引入的外部扩展jar包 String Array
general.extension.tClass 自定义扩展,需要动态加载的目标Class String Array

脚本引擎参数:

字段 描述 数据类型
scriptEngine.enable 是否开启脚本引擎 Boolean
scriptEngine.format 脚本引擎能处理的文件后缀 String Array

Java代码解析引擎参数:

字段 描述 数据类型
javaCodeEngine.enable 是否开启Java代码解析引擎 Boolean
javaCodeEngine.rule 引擎处理的Java文件集的扫描规则 String
javaCodeEngine.ruleFile 引擎处理的Java文件集的扫描规则文件 String
javaCodeEngine.extension 自定扩展,包括TypeDefineWrapper和AGAnnotationProcessor Object
javaCodeEngine.extension.jar 自定扩展,引入的外部扩展jar包 String Array
javaCodeEngine.extension.tClass 自定扩展,需要动态加载的目标Class String Array

自定义扩展Engine和Processor参数:

字段 描述 数据类型
engine.extension 自定义扩展Engine Object
processor.extension 自定义扩展Processor Object
Clone this wiki locally