使用Gradle编写环境特定的web.xml,log4j.xml

时间:2017-11-01 18:33:35

标签: java gradle

我的web.xml中有类似的内容:

<context-param>
    <param-name>log4jConfigLocation</param-name>
    <param-value>${path}/log4j.xml</param-value>
</context-param>  

在log4j.xml中:

<appender name="errorfile" 
    class="org.apache.log4j.DailyRollingFileAppender">
    <param name="File" value="${logfiles}/errors.log" />
    <param name="Threshold" value="ERROR" />
    <param name="datePattern" value="'.'yyyy-MM-dd" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d %-5p [%t] (%c) - %m%n" />
    </layout>
</appender>

当gradle构建时,我想在gradle.properties文件中提供正确值$ {path}和$ {logfiles}。

理想情况下,我想运行一个独立于构建来准备文件的任务。这样构建过程可能会更容易。

1 个答案:

答案 0 :(得分:1)

Gradle的Copy任务支持过滤,即用来自任意属性源的值替换占位符(${property})。在你的情况下,它将是:

processResources {
    expand project.properties
}

它会在src/main/resources任务期间替换processResources中所有文件的所有令牌,其值来自project.properties(并填充gradle.properties)。