-
Notifications
You must be signed in to change notification settings - Fork 4
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 |
字段 | 描述 | 数据类型 |
---|---|---|
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.extension | 自定义扩展Engine | Object |
processor.extension | 自定义扩展Processor | Object |
- 在Android Studio项目中引入ArbitraryGen
- 在Eclipse项目中引入ArbitraryGen
- ArbitraryGen模板的使用
- 根据XML数据源生成Java代码
- 根据代码模板生成Java代码
- 在Java源文件中生成代码
- ArbitraryGen扫描规则的使用
- 自定义SourceFileParser
- 自定义CustomizeParser和CustomizeConverter
- 自定义TemplateWrapper
- 自定义AGAnnotationProcessor
- 自定义ArbitraryGenProcessor
- 自定义ArbitraryGenEngine