我正在尝试安装我从 Kotlin 项目创建的 maven 原型。每当我尝试安装原型时,都会收到此错误:
Archetype IT 'basic' failed: org.apache.maven.archetype.exception.ArchetypeGenerationFailure: Error merging velocity templates: Encountered "()}"n
触发错误的代码行是
return "redirect:${getRequestMapping()}"
我能做些什么来解决这个问题吗?我经常使用字符串插值,我不想用串联字符串替换它们
美元符号"$"对Apache Velocity有意义,Apache Velocity是原型使用的引擎。Velocity 看到"$",认为它应该对它做点什么,但语法是错误的(对于 Velocity(,它失败了。
此处的解决方法是转义美元符号,以便 Velocity 忽略它,如文档中所述。
像这样的东西,它显示了美元符号,但也显示了其他可能需要根据用例进行转义的内容:
## File will be filtered by Velocity - it is a Velocity template.
## Establish escape sequences for Velocity special chars.
#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '' )
## Use the variable anywhere the interpolation is used
return "redirect:${symbol_dollar}{getRequestMapping()}"
Velocity 文档仅使用"D"作为变量名称展示了相同的技术。我喜欢可搜索性和自我文档的较长名称。