4

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

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

4

1 回答 1

6

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

对于后面的(Maven 变量),可以使用资源过滤。通过向您的 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 中透明地工作。

也可以看看

于 2010-07-17T02:06:05.383 回答