我正在使用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");
}
}
我正在"本地"这些代码的结果。我错过了重要的事吗?请提出建议,非常感谢。