Maven 2 Maven:未被替换的属性

Maven 2 Maven:未被替换的属性,maven-2,replace,properties,substitution,Maven 2,Replace,Properties,Substitution,我在我的项目中使用了一个maven插件来安装4J,位于。该插件允许您使用部分将变量传递给install4j。以下是我的pom的相关部分: <plugin> <groupId>com.google.code.maven-install4j</groupId> <artifactId>maven-install4j-plugin</artifactId> <version>0.1.1</versio

我在我的项目中使用了一个maven插件来安装4J,位于。该插件允许您使用
部分将变量传递给install4j。以下是我的pom的相关部分:

<plugin>
    <groupId>com.google.code.maven-install4j</groupId>
    <artifactId>maven-install4j-plugin</artifactId>
    <version>0.1.1</version>
    <configuration>
        <executable>${devenv.install4jc}</executable>
        <configFile>${basedir}/newinstaller/ehd.install4j</configFile>
        <releaseId>${project.version}</releaseId>
        <attach>false</attach>
        <skipOnMissingExecutable>false</skipOnMissingExecutable>
        <compilerVariables>
            <property>
                <name>m2_home</name>
                <value>${settings.localRepository}</value>
            </property>
        </compilerVariables>
    </configuration>
</plugin>

这是插件的错误吗?如果是这样,需要做哪些更改才能允许替换发生?

以下POM仅适用于我(使用Maven 2.2.1):


4.0.0
com.stackoverflow

该插件接受一个作为属性实例的参数。无论出于何种原因,用于配置属性实例的表达式都不会自动求值。我不得不更改插件以使用org.apache.maven.plugin.PluginParameterExpressionEvaluator来评估${settings.localRepository}。

这是直线命令行maven 2。是的,在antrun插件中使用该属性时,我得到了正确的输出。看来这可能是插件的问题。我会看看antrun插件对这样的属性输入做了什么,看看我是否可以将它应用到另一个插件上。@jobrahms看来插件可能有问题是的,我想是的。@jobrahms我已经用
mvn help:evaluate
测试了antrun外部的属性,并确认它已正确解决。@Pascal Thivent我刚刚尝试了另一个属性${basedir},该属性已被正确替换。使用名字中有点的属性有什么奇怪的吗?“JoBrHaMs不符合我的知识(如果我认为这是一个bug)。尝试使用
${project.version}
进行确认(它肯定会工作)。
[INFO] Running the following command for install4j compile: /bin/sh -c /home/zach/install4j/bin/install4jc --release=9.1-SNAPSHOT --destination="/home/zach/projects/java/ehdtrunk/target/install4j" -D m2_home=${settings.localRepository} /home/zach/projects/java/ehdtrunk/newinstaller/ehd.install4j
<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.stackoverflow</groupId>
  <artifactId>Q2828732</artifactId>
  <version>1.0-SNAPSHOT</version>
  <dependencies>
    ...
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <phase>validate</phase>
            <configuration>
              <tasks>
                <echo>${settings.localRepository}</echo>
              </tasks>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
$ mvn validate [INFO] Scanning for projects... [INFO] ------------------------------------------------------------------------ [INFO] Building Q2828732 [INFO] task-segment: [validate] [INFO] ------------------------------------------------------------------------ [INFO] [antrun:run {execution: default}] [INFO] Executing tasks [echo] /home/pascal/.m2/repository [INFO] Executed tasks [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2 seconds [INFO] Finished at: Thu May 13 19:28:38 CEST 2010 [INFO] Final Memory: 3M/54M [INFO] ------------------------------------------------------------------------