如何安装具有包含字符串插值的 Kotlin 代码的 maven 原型



我正在尝试安装我从 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"作为变量名称展示了相同的技术。我喜欢可搜索性和自我文档的较长名称。

相关内容

  • 没有找到相关文章

最新更新