当属性值字符串与属性名称相同时,是否可以转义maven属性插值?

时间:2014-06-02 03:51:35

标签: maven

我正在尝试定义maven属性:

<properties>
  <property>$${property}</property>
</property>

Maven尝试扩展$ {property},我收到以下错误:

[ERROR]     Resolving expression: '${property}': Detected the
     following recursive expression cycle in 'property': [property] -> [Help 2]

我尝试了各种各样的组合试图逃避它,但没有成功:

$$
\$
\$$

等等

注意:当属性值与名称不同时,插值将被转义。

这可能吗?

2 个答案:

答案 0 :(得分:1)

由于您似乎无法构建maven属性(即使使用中间属性),也许您可​​以保留2个单独的属性并将它们连接到您需要的位置。假设你想在文件中填充一些属性。

在POM中定义2个变量:

<properties>
    <property>{property}</property>
    <dollar>$</dollar>
</properties>

在文件中定义属性时使用两者:

# variable from file which is to be filtered
whatever=${dollar}${property}

过滤后你最终会得到:

# variable from file which is to be filtered
whatever=${property} 

<小时/> <击> 使用&amp;怎么样?配置如:

  <properties>
      <property>&amp;{property}</property>
  </properties>

  ...

  <plugins>
        <plugin>
            <groupId>com.soebes.maven.plugins</groupId>
            <artifactId>echo-maven-plugin</artifactId>
            <version>0.2</version>
            <executions>
                <execution>
                    <phase>initialize</phase>
                    <goals>
                        <goal>echo</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <echos>
                    <echo>property=[${property}]</echo>
                </echos>
            </configuration>
        </plugin>
  </plugins>

将输出:

[INFO] --- echo-maven-plugin:0.2:echo (default) @ XXXX ---
[INFO] property=[&{property}]

<击>

答案 1 :(得分:-1)

&#36;{property}应该可以正常使用。