我可以将Eclipse和Maven变量替换为log4j.properties文件吗?

时间:2010-07-16 13:24:14

标签: eclipse maven-2 configuration log4j variable-subsitution

您可以使用$ {variablename}语法在log4j配置文件中使用系统属性。

您是否可以在其中包含Eclipse变量(如项目名称)和Maven变量(如工件ID),并在相应的构建过程中替换它们?

1 个答案:

答案 0 :(得分:6)

  

您是否可以在其中包含Eclipse变量(如项目名称)和Maven变量(如工件ID),并在相应的构建过程中替换它们?

对于后来的(Maven变量),您可以使用resources filtering。通过向您的POM添加<filtering>元素并将其设置为true来激活它:

<project>
  ...
  <build>
    ...
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
      </resource>
      ...
    </resources>
    ...
  </build>
  ...
</project>

现在,资源文件中使用的任何Maven属性(如${project.artifactId})都会被其值替换。您可以定义includes / excludes以更好地控制要过滤的资源。有关示例,请参阅上面的链接。

对于前者(Eclipse变量),Maven并不知道它们,所以很明显,这个解决方案不起作用,我实际上建议坚持使用Maven过滤(Maven构建应该是参考)。

如果您正在使用m2eclipse,这将在Eclipse内部透明地工作。

另见