我使用Maven生成原型。我能够使原型生成正常,并且它生成的项目模板按预期工作。唯一的问题是在我的shell脚本中。脚本中注释掉的任何内容都会被删除,只留下命令。我已经搜索过高低,我能找到的是另一个用户面临类似java评论的问题。 https://stackoverflow.com/questions/18797333/maven-archetype-generation-is-stripping-java-comments这个问题仍然没有答案,所以我想我会再问一次。有谁知道为什么Maven原型会删除评论或如何防止这种情况发生?
答案 0 :(得分:4)
使用#set命令本身将#hash变量设置为"#"工作,允许我在原型生成的脚本中维护shell注释。当在标题中连续使用80#符号时,这会变得相对难看,但那是另一回事......
答案 1 :(得分:2)
当您将原型模板文件复制到项目位置时,Maven使用Apache Velocity执行替换/替换。 '#' character用于开始指令,例如#set
,在Velocity中。我的猜测是Velocity没有将你的评论识别为有效指令,并在替换过程中默默删除它。
虽然我还没有验证这是否有效 - 但我会尝试使用Velocity&{39} user manual中定义的反斜杠(\)来解决这些问题。
答案 2 :(得分:1)
我的哈希也有类似的问题。在页面http://johnjianfang.blogspot.com/2009/03/escape-properties-in-maven-archetypes.html我找到了答案。
在我的情况下,像这样的东西很好用:
#set($hash = '#')
${hash}
输出:
#