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

bra*_*ter 4 eclipse configuration maven-2 log4j variable-substitution

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

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

Pas*_*ent 6

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

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

<project>
  ...
  <build>
    ...
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
      </resource>
      ...
    </resources>
    ...
  </build>
  ...
</project>
Run Code Online (Sandbox Code Playgroud)

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

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

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

也可以看看