IntelliJ IDEA模板变量与XML属性冲突
我发现自己在所有项目中都使用了非常类似的Ant构建脚本,所以我决定将build.xml作为模板。但是,IntelliJ IDEA的自定义模板变量的语法(在选择模板时它会要求)与Ant访问属性的语法完全相同IntelliJ IDEA模板变量与XML属性冲突,xml,templates,ant,intellij-idea,Xml,Templates,Ant,Intellij Idea,我发现自己在所有项目中都使用了非常类似的Ant构建脚本,所以我决定将build.xml作为模板。但是,IntelliJ IDEA的自定义模板变量的语法(在选择模板时它会要求)与Ant访问属性的语法完全相同 ${FULLY_QUALIFIED_CLASS_NAME} <- custom template variable that I leave undefined ${basedir} <- provided by Ant 但我也使用了其他内置
${FULLY_QUALIFIED_CLASS_NAME} <- custom template variable that I leave undefined
${basedir} <- provided by Ant
但我也使用了其他内置属性,比如java.home
,它们也没有声明,也没有要求我提供这些声明
我如何才能绕过这个问题,说服IntelliJ不要管这些属性,让Ant为它们提供值?我发现的解决方法是用稍微不同的名称来屏蔽这两个特定的值。例如,我使用了这条线
避免键入导致问题的特定符号。我通过给TStamp一个前缀重命名了DSTAMP:
<tstamp prefix="this"/>
所以现在我调用${this.basedir}
和${this.DSTAMP}
,IntelliJ很高兴。我仍然不知道它为什么会这样做,特别是对于这些值,但是屏蔽它们似乎是一个有效的解决方案
<property name="this.basedir" refid="basedir"/>
<dirname property="this.basedir" file="${ant.file}"/>
<!-- EDIT: for some reason, IntelliJ didn't like me refid'ing basedir.
This works if ${ant.file} is in the project root. -->
<tstamp prefix="this"/>