4
我想在JetBrains的IntelliJ IDEA的我的Maven項目創建一個模板12HOWTO逃生行家性能
我的目標是爲了躲避模板中預定義的Maven特性。不幸的是,語法與模板中的IntelliJ參數相同。
按照online help,我可以逃避$
符號與另一$
在它前面,所以我的模板看起來像這樣(在底部插件部分重要):
<?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$
,什麼是逃串的正確方法?
我不認爲這是一個偉大的想法。 Maven提供了一個稱爲原型的功能:https://maven.apache.org/guides/introduction/introduction-to-archetypes.html –
我知道Archetypes可用並提供更多的靈活性,但我也希望能夠擁有Intellij生成更好的pom。 –