我正在尝试在 JetBrains IntelliJ IDEA 12 中为我的 Maven 项目创建一个模板。
我的目标是转义模板内预定义的 Maven 属性。不幸的是,语法与模板中的 IntelliJ 参数相同。
根据在线帮助$
,我可以在一个符号前用另一个符号转义$
,所以我的模板看起来像这样(底部的插件部分很重要):
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
#if (${HAS_PARENT})
<parent>
<groupId>${PARENT_GROUP_ID}</groupId>
<artifactId>${PARENT_ARTIFACT_ID}</artifactId>
<version>${PARENT_VERSION}</version>
#if (${HAS_RELATIVE_PATH})
<relativePath>${PARENT_RELATIVE_PATH}</relativePath>
#end
</parent>
#end
<groupId>${GROUP_ID}</groupId>
<artifactId>${ARTIFACT_ID}</artifactId>
<version>${VERSION}</version>
<!-- global properties -->
<properties>
<jdk.version>1.7</jdk.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<plugins>
<!-- set jdk version -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>$${jdk.version}</source>
<target>$${jdk.version}</target>
</configuration>
</plugin>
</plugins>
</build>
${END}
</project>
但是使用这个模板,输出仍然是:
<build>
<plugins>
<!-- set jdk version -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>$JDK.VERSION$</source>
<target>$JDK.VERSION$</target>
</configuration>
</plugin>
</plugins>
</build>
所以我的问题是:我怎样才能得到${jdk.version}
而不是$JDK.VERSION$
逃避字符串的正确方法是什么?