$\color{#ff6600}{注:resources/template下的引擎模板代码不能格式化,切记,否则会导致生成的代码格式特别乱!!!}$
$\color{#ff6600}{注:文档中的gradle或者kotlin脚本仅仅支持gradle版本范围:5.x~6.x,,7.+版本有时间会出新的支持的脚本文档说明。}$
支持gradle7+且支持kotlin DSL的版本已经更新为仓库:https://gitee.com/jiangyun/gradle-mybatis-codegen-plugin, 此仓库代码将不再维护!!!
基于gradle构建工具并支持gradle的代码生成插件,生成代码支持类型如下:
数据库类型
支持框架及特点
支持语言
生成的代码,在mybatis版本中,是默认直接生成从dao层到controller层的CRUD,mybatis-plus则按照官方代码生成方式 目前暂时推荐使用创建独立的gradle文件,并在build.gradle或build.gradle.kts中引用即可。
为什么上传到maven仓库?第一次申请被拒绝了,而且也不是很熟悉发布流程,熟悉的可以考虑发布到maven仓库中。
怎么直接在gradle使用可以自己琢磨一下,本文档着重教程是独立gradle脚本文件使用方式,因为可以保持build.gradle的简洁; 编译好可下载使用的包在源码中的release文件夹下 点击下载
generate-code.gradle
的文件,脚本内容如下:buildscript {
repositories {
mavenLocal()
maven { url 'https://maven.aliyun.com/repository/public/' }
}
dependencies {
classpath 'mysql:mysql-connector-java:8.0.23'
classpath 'org.freemarker:freemarker:2.3.31'
classpath 'org.postgresql:postgresql:42.2.19'
classpath 'com.alibaba:druid:1.2.8'
classpath fileTree(dir: "${rootDir}/libs", include: ['cn-plugins-generator-1.0.8.jar']) // libs为jar包代码插件存放位置,位置可以随意放,只要配置好路径即可
}
}
/**
* 生成代码task
*/
task generateCode(type: cn.plugins.generator.task.GenerateCodeTask) {
doFirst {
dbType = "mysql" // 目前只支持mysql(5.7+)、meriaDB(对应mysql5.7+的版本)、postgresql(某个版本以上,具体版本后面会补齐说明)
url = "localhost" // 数据库所在host
port = "3306" // 数据库端口
database = "test" // 数据库名称
userName = "root" // 数据库用户名
password = "admin123456" // 数据库密码
frameworkType = "mybatisplus" // mybatis 或 mybatisplus
tablePrefix = "base" // 切记不要带前缀下划线进来,如:btplatform_
tableName = "base_user" // 多个表使用英文逗号隔开,不要留空格符
projectPath = "/Users/admin/Desktop/project" // 此路径可以根据需求随意设置即可,只不过 projectDir.path 会定位到当前项目下
packageName = "com.test.admin" // 顶层包
controller = "controller" // 控制器对应的包名称
service = "service" // 业务逻辑层service对应的包名称
mapper = "mapper" // mybatis mapper对应的包名称
entity = "entity" // 与数据库表字段一一对应的实体包名称
xml = "mapper" // resources下mybatis xml所存放的位置
languageType = "java"// java或kotlin,当frameworkType为mybatisplus时,不支持生成kotlin代码,估计以后会考虑支持
author = "jy"//System.getProperty("user.name") // 生成的代码的顶部注释会的作者名称(默认拉取当前系统登录用户名)
apiPrefix = "/api"// 定义的controller请求前缀,默认值:/api
enableGenerateDoc = true // 是否生成支持swaggerUI2文档,当然前提是已经配置swaggerUI2,不然无法生效,UI可选择swaggerUI2/swagger-bootstrap-ui/knife4j
enableGenVuePage = true // 是否生成vue crud页面代码,默认值:false
}
}
/**
* 生成数据库设计文档(markdown)
*/
task generateDoc(type: cn.plugins.generator.task.GenerateMarkdownTask) {
doFirst {
dbType = "mysql"
url = "localhost" // 数据库所在host
port = "3306" // 数据库端口
database = "base" // 数据库名称
userName = "root" // 数据库用户名
password = "admin123456" // 数据库密码
projectPath = "/Users/admin/Desktop/project" // 此路径可以根据需求随意设置即可,只不过 projectDir.path 会定位到当前项目下
}
}
在最外层引用即可,不要把下面的脚本随意放到别的位置!!!
apply from: 'generate-code.gradle'
想在springboot2.+的kotlin中怎么使用?目前spring官方默认给出的是使用kotlin编写DSL,不熟悉的人,就比较费劲了,文件也不再是以.gradle结束,而是.gradle.kts。 如下的脚本为kotlin编写DSL的使用方式,具体使用方式如下:
import cn.plugins.generator.task.GenerateCodeTask
import cn.plugins.generator.task.GenerateMarkdownTask
buildscript {
repositories {
mavenLocal()
maven {
setUrl("https://maven.aliyun.com/repository/public/")
}
}
dependencies {
classpath 'mysql:mysql-connector-java:8.0.23'
classpath 'org.freemarker:freemarker:2.3.31'
classpath 'org.postgresql:postgresql:42.2.19'
classpath 'com.alibaba:druid:1.2.8'
classpath fileTree(dir: "${rootDir}/libs", include: ['cn-plugins-generator-1.0.8.jar']) // libs为jar包代码插件存放位置,位置可以随意放,只要配置好路径即可
}
}
tasks.register<GenerateCodeTask>(name = "generateCode") {
dbType = "mysql"// 值为mysql或postgresql 由于mariadb为mysql的分支,所以是mariadb的,此处直接填写mysql即可
url = "localhost"
port = "3306"
database = "pagehelper-test"
userName = "root"
password = "admin1230"
frameworkType = "mybatis" // mybatis 或 mybatisplus
tablePrefix = "test" // 不要带前缀下划线进来
tableName = "test_login"// 多个表使用英文逗号隔开
projectPath = projectDir.path
packageName = "com.example.demo"
controller = "controller"
service = "service"
mapper = "mapper"
entity = "entity"
xml = "mapper"
languageType = "kotlin"// java或kotlin
author = "jy"
company = "测试公司"
apiPrefix = "/api"// 默认值:/api
enableGenerateDoc = true // 是否生成支持swaggerUI2文档
}
/**
* 生成代码task
*/
tasks.register<GenerateCodeTask>(name = "generateCode") {
doFirst {
dbType = "mysql" // 目前只支持mysql(5.7+)、meriaDB(对应mysql5.7+的版本)、postgresql(某个版本以上,具体版本后面会补齐说明)
url = "localhost" // 数据库所在host
port = "3306" // 数据库端口
database = "test" // 数据库名称
userName = "root" // 数据库用户名
password = "admin123456" // 数据库密码
frameworkType = "mybatisplus" // mybatis 或 mybatisplus
tablePrefix = "base" // 切记不要带前缀下划线进来,如:btplatform_
tableName = "base_user" // 多个表使用英文逗号隔开,不要留空格符
projectPath = "/Users/admin/Desktop/project" // 此路径可以根据需求随意设置即可,只不过 projectDir.path 会定位到当前项目下
packageName = "com.test.admin" // 顶层包
controller = "controller" // 控制器对应的包名称
service = "service" // 业务逻辑层service对应的包名称
mapper = "mapper" // mybatis mapper对应的包名称
entity = "entity" // 与数据库表字段一一对应的实体包名称
xml = "mapper" // resources下mybatis xml所存放的位置
languageType = "java"// java或kotlin,当frameworkType为mybatisplus时,不支持生成kotlin代码,估计以后会考虑支持
author = "jy"//System.getProperty("user.name") // 生成的代码的顶部注释会的作者名称(默认拉取当前系统登录用户名)
apiPrefix = "/api"// 定义的controller请求前缀,默认值:/api
enableGenerateDoc = true // 是否生成支持swaggerUI2文档,当然前提是已经配置swaggerUI2,不然无法生效,UI可选择swaggerUI2/swagger-bootstrap-ui/knife4j
enableGenVuePage = true // 是否生成vue crud页面代码,默认值:false
}
}
/**
* 生成数据库设计文档(markdown)
*/
tasks.register<GenerateMarkdownTask>(name = "generateDoc") {
doFirst {
dbType = "mysql"
url = "localhost" // 数据库所在host
port = "3306" // 数据库端口
database = "base" // 数据库名称
userName = "root" // 数据库用户名
password = "admin123456" // 数据库密码
projectPath = "/Users/admin/Desktop/project" // 此路径可以根据需求随意设置即可,只不过 projectDir.path 会定位到当前项目下
}
}
apply(from = "generate-code.gradle.kts") // 特殊就在这个地方,这是kotlin编写DSL的脚本,与groovy还是有区别的 groovy的为:apply from: 'generate.gradle'
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。