use of com.github.mengweijin.generator.entity.Parameters in project code-generator-maven-plugin by mengweijin.
the class DefaultAutoGenerator method execute.
public void execute() {
Parameters parameters = projectInfo.getParameters();
String outputDir = FileUtil.file(projectInfo.getBaseDir(), "target/code-generator/").getAbsolutePath();
// clean directory target/code-generator
FileUtil.del(outputDir);
FastAutoGenerator fastAutoGenerator = FastAutoGenerator.create(dataSourceConfigBuilder()).globalConfig(builder -> builder.fileOverride().author(parameters.getAuthor()).enableSwagger().disableOpenDir().outputDir(outputDir).dateType(DateType.TIME_PACK).commentDate("yyyy-MM-dd")).packageConfig(builder -> builder.parent(parameters.getOutputPackage())).templateConfig((Consumer<TemplateConfig.Builder>) TemplateConfig.Builder::disable).strategyConfig(builder -> builder.addInclude(this.trimItemName(parameters.getTables())).addTablePrefix(this.trimItemName(parameters.getTablePrefix())).entityBuilder().superClass(parameters.getSuperEntityClass()).enableChainModel().enableLombok().enableTableFieldAnnotation().versionColumnName("version").versionPropertyName("version").logicDeleteColumnName("deleted").logicDeletePropertyName("deleted").naming(NamingStrategy.underline_to_camel).addSuperEntityColumns(this.generateDefaultSuperEntityColumns()).controllerBuilder().superClass(parameters.getSuperControllerClass()).enableHyphenStyle().enableRestStyle().serviceBuilder().superServiceClass(parameters.getSuperServiceClass()).superServiceImplClass(parameters.getSuperServiceImplClass()).mapperBuilder().superClass(parameters.getSuperDaoClass()).enableBaseColumnList().enableBaseResultMap()).injectionConfig(builder -> {
builder.beforeOutputFile(((tableInfo, objectMap) -> {
enhanceObjectMap(objectMap, parameters);
FileOutput.outputFile(tableInfo, objectMap, projectInfo, outputDir);
}));
}).templateEngine(TemplateEngineFactory.getTemplateEngine(this.projectInfo.getParameters().getTemplateType()));
fastAutoGenerator.execute();
}
use of com.github.mengweijin.generator.entity.Parameters in project code-generator-maven-plugin by mengweijin.
the class AbstractGeneratorMojo method execute.
@Override
public void execute() throws MojoExecutionException, MojoFailureException {
try {
// clean TMP folder
FileUtil.del(FileUtil.file(ProjectInfo.TMP_DIR));
this.loadParentProjectClassToJarClassLoader();
TemplateUtils.copyTemplateFolderToJavaTmp("templates/");
this.parameters = Optional.ofNullable(this.parameters).orElse(new Parameters());
this.setDefaultFixedParameters(this.parameters);
ProjectInfo projectInfo = new ProjectInfo();
projectInfo.setParameters(this.parameters);
projectInfo.setResourceList(this.getResources());
projectInfo.setBaseDir(this.baseDir);
projectInfo.setSourceDir(this.sourceDir);
new DefaultAutoGenerator(projectInfo).execute();
} catch (Exception e) {
getLog().error(e);
throw new RuntimeException(e);
}
}
use of com.github.mengweijin.generator.entity.Parameters in project code-generator-maven-plugin by mengweijin.
the class FileOutput method outputFile.
public static void outputFile(TableInfo tableInfo, Map<String, Object> objectMap, ProjectInfo projectInfo, String outputDir) {
Parameters parameters = projectInfo.getParameters();
AbstractTemplateEngine templateEngine = TemplateEngineFactory.getTemplateEngine(parameters.getTemplateType());
String outputPackage = parameters.getOutputPackage();
List<File> templateFileList = FileUtil.loopFiles(parameters.getTemplateLocation(), file -> file.isFile() && file.getName().toLowerCase().endsWith(parameters.getTemplateType().getSuffix()));
if (CollectionUtil.isEmpty(templateFileList)) {
throw new RuntimeException("No template files found in location " + parameters.getTemplateLocation());
} else {
String message = "Found " + templateFileList.size() + " template files in location " + parameters.getTemplateLocation();
log.info(message);
}
try {
for (File templateFile : templateFileList) {
// 初始化输出文件的名称和路径
File outputFile = buildOutputFile(tableInfo, templateFile.getAbsolutePath(), outputDir, outputPackage);
FileUtil.mkParentDirs(outputFile);
// 使用模板引擎,渲染并输出文件
templateEngine.writer(objectMap, templateFile.getAbsolutePath(), outputFile);
}
} catch (Exception e) {
log.error("Template engine writer error!", e);
throw new RuntimeException(e);
}
}
Aggregations