代码生成

代码生成器引入了更加灵活和高效的 builder 模式,使得开发者能够快速生成符合需求的代码,同时保持代码的优雅和整洁。这个新特性旨在进一步提升开发效率,减少重复劳动,让开发者能够更加专注于业务逻辑的实现。

F
astAutoGenerator.create(ConfigUtils.load("dbcp.properties"))
.dataSourceConfig(builder -> {
builder.databaseQueryClass(DefaultQuery.class);
})
.globalConfig(builder -> {
builder.outputDir("C:\\Users\\29662\\Documents\\dynamic-group\\src\\main\\java\\com\\sie\\snest\\dynamic\\group\\model\\");
builder.author("mijiuye");
builder.jsonFilePath("C:\\Users\\29662\\IdeaProjects\\sie-snest\\sie-snest-code-generator\\src\\main\\java\\com\\sie\\snest\\engine\\generator\\app.json");
})
.packageConfig(builder -> {
builder.parent("com.sie.snest.dynamic.group");
builder.version("1.0.0");
})
.templateConfig(builder -> builder.classzz(true))
.compilerConfig(builder -> {

String sourceDir = "C:\\Users\\29662\\Documents\\dynamic-group\\";
String libDir = "C:\\Users\\29662\\Documents\\dynamic-group\\target\\lib\\";
String outputLocation = "C:\\Users\\29662\\Documents\\dynamic-group\\src\\main\\java\\";


List<String> filenames = null;
try {
filenames = FileUtils.getFileNames(new File(libDir), "**/*.jar", null, false, true);
} catch (IOException e) {
throw new RuntimeException(e);
}
Collections.sort(filenames);
List<String> classpathEntries = new ArrayList<>();
for (String filename : filenames) {
classpathEntries.add(libDir + filename);
}


builder.setClasspathEntries(classpathEntries);
builder.addSourceLocation(sourceDir);
builder.setOutputLocation(outputLocation);
try {
FileUtils.deleteDirectory(outputLocation);
} catch (IOException e) {
throw new RuntimeException(e);
}
// compilerConfig.addInclude( filename );
//compilerConfig.setSourceFiles(files);
builder.setTargetVersion("1.8");
builder.setSourceVersion("1.8");
})
.templateEngine(new FreemarkerTemplateEngine())
.execute();