当前使用版本(必填,否则不予处理)
3.4.1
该问题是如何引起的?(确定最新版也有问题再提!!!)
AutoGenerator mpg ; GlobalConfig globalConfig = new GlobalConfig(); globalConfig.setServiceName("%sService");
mpg.setGlobalConfig(globalConfig);
mpg.setTemplateEngine(new FreemarkerTemplateEngine());
mpg.execute();
修改Service命名规则,然后就失败了
重现步骤(如果有就写完整)
AutoGenerator mpg = this.getAutoGenerator();
final PackageConfig pc = new PackageConfig();
pc.setParent(packageName);
pc.setEntity("pojo");
mpg.setPackageInfo(pc);
InjectionConfig cfg = new InjectionConfig() {
public void initMap() {
}
};
List
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setServiceName("%sService");
mpg.setGlobalConfig(globalConfig);
mpg.setTemplateEngine(new FreemarkerTemplateEngine());
mpg.execute();
报错信息
请输入代码生成确认 y/n ?: y 请输入输入作者名: feigf 23:19:28.161 [main] DEBUG com.baomidou.mybatisplus.generator.AutoGenerator - ==========================准备生成文件...========================== 十二月 05, 2020 11:19:28 下午 freemarker.log._JULLoggerFactory$JULLogger error 严重: Error executing FreeMarker template FreeMarker template error: The following has evaluated to null or missing: ==> author [in template "templates/serviceImpl.java.ftl" at line 14, column 14]
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
FTL stack trace ("~" means nesting-related): - Failed at: ${author} [in template "templates/serviceImpl.java.ftl" at line 14, column 12]
Java stack trace (for programmers):
freemarker.core.InvalidReferenceException: [... Exception message was already printed; see it above ...] at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:131) at freemarker.core.EvalUtil.coerceModelToString(EvalUtil.java:355) at freemarker.core.Expression.evalAndCoerceToString(Expression.java:82) at freemarker.core.DollarVariable.accept(DollarVariable.java:41) at freemarker.core.Environment.visit(Environment.java:324) at freemarker.core.MixedContent.accept(MixedContent.java:54) at freemarker.core.Environment.visit(Environment.java:324) at freemarker.core.Environment.process(Environment.java:302) at freemarker.template.Template.process(Template.java:325) at com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine.writer(FreemarkerTemplateEngine.java:52) at com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine.writerFile(AbstractTemplateEngine.java:137) at com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine.batchOutput(AbstractTemplateEngine.java:119) at com.baomidou.mybatisplus.generator.AutoGenerator.execute(AutoGenerator.java:106) at com.xf.mybatis.general.CodeGenerator.batchMake(CodeGenerator.java:112) at com.xf.mybatis.general.CodeGenerator.run(CodeGenerator.java:56) at com.xf.mybatis.CodeGeneratorApplication.main(CodeGeneratorApplication.java:40)
23:19:28.763 [main] ERROR com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine - 无法创建文件,请检查配置信息! freemarker.core.InvalidReferenceException: The following has evaluated to null or missing: ==> author [in template "templates/serviceImpl.java.ftl" at line 14, column 14]
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
FTL stack trace ("~" means nesting-related): - Failed at: ${author} [in template "templates/serviceImpl.java.ftl" at line 14, column 12]
at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:131)
at freemarker.core.EvalUtil.coerceModelToString(EvalUtil.java:355)
at freemarker.core.Expression.evalAndCoerceToString(Expression.java:82)
at freemarker.core.DollarVariable.accept(DollarVariable.java:41)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.MixedContent.accept(MixedContent.java:54)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.Environment.process(Environment.java:302)
at freemarker.template.Template.process(Template.java:325)
at com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine.writer(FreemarkerTemplateEngine.java:52)
at com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine.writerFile(AbstractTemplateEngine.java:137)
at com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine.batchOutput(AbstractTemplateEngine.java:119)
at com.baomidou.mybatisplus.generator.AutoGenerator.execute(AutoGenerator.java:106)
at com.xf.mybatis.general.CodeGenerator.batchMake(CodeGenerator.java:112)
at com.xf.mybatis.general.CodeGenerator.run(CodeGenerator.java:56)
at com.xf.mybatis.CodeGeneratorApplication.main(CodeGeneratorApplication.java:40)
23:19:28.776 [main] DEBUG com.baomidou.mybatisplus.generator.AutoGenerator - ==========================文件生成完成!!!==========================
Comment From: jfei
globalConfig.setOutputDir(System.getProperty("user.dir") + "/src/main/java"); globalConfig.setAuthor("jobob"); 忘记加了,已解决