如何进行gradle资源过滤

时间:2017-10-14 09:11:10

标签: java spring gradle

我正在使用gradle开发一个java Web应用程序。我想在不同的环境中测试这个应用程序,例如本地,测试站点或实时。我有一个想法是根据环境替换属性文件中的变量。假设此Web应用程序在测试站点上运行。这是我的代码。

的build.gradle

import org.apache.tools.ant.filters.*
import groovy.swing.*

if(!hasProperty("profile")) {
    ext.profile = "test"
}

if(!hasProperty("deployTarget")) {
    ext.deployTarget = "local"
}

if(deployTarget == "local") 
{
    apply from: "gradle-properties/local.properties"
}
else if(deployTarget == "test") 
{
    apply from: "gradle-properties/test.properties"
}
else if(deployTarget == "live") 
{
    apply from: "gradle-properties/live.properties"
}

processResources {
    from('src/main/resources') {
        include '*.properties'
        filter(ReplaceTokens, tokens: ['serverEnvironment': serverEnvironment])
    }
}

的gradle的属性/ test.properties

ext.serverEnvironment="test"

的src /主/资源/ web.application.config.properties

server.environment=@serverEnvironment@

TestRestController.java

@RestController
public class TestRestController {

    @Resource //tested @Inject also
    private Environment environment;

    @RequestMapping(value = "/test")
    public String testController() {
        return environment.getProperty("server.environment");
    }
}

我正在"本地"这些代码的结果。我错过了重要的事吗?请提出建议,非常感谢。

0 个答案:

没有答案