gpt4 book ai didi

java - 如何转义 IntelliJ 文件模板中的 Maven 属性

转载 作者:搜寻专家 更新时间:2023-11-01 03:07:11 25 4
gpt4 key购买 nike

我正在尝试在 JetBrains IntelliJ IDEA 12 中为我的 Maven 项目创建一个模板。

我的目标是转义模板内预定义的 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$ 以及转义字符串的正确方法是什么?

最佳答案

由于 IntelliJ 使用 Apache Velocity 作为模板引擎,您可以使用 #set 创建引用。

http://velocity.apache.org/engine/releases/velocity-1.6.4/user-guide.html

使用可以使用

#set( $jdk_version = "${jdk.version}" )

并在您的模板中简单地引用 ${jdk_version}

你能测试下面的例子吗:

#set( $jdk_version = "${jdk.version}" )
<?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>

生成以下输出:

<?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>

<parent>
<groupId>3</groupId>
<artifactId>4</artifactId>
<version>5</version>
<relativePath>7</relativePath>
</parent>

<groupId>8</groupId>
<artifactId>9</artifactId>
<version>10</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>

11
</project>

我希望这对您有所帮助,并且是您问题的答案...

关于java - 如何转义 IntelliJ 文件模板中的 Maven 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18401215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com