Maven中profiles实践
pom.xml
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<env>dev</env>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<env>test</env>
</properties>
</profile>
<profile>
<id>pro</id>
<properties>
<env>pro</env>
</properties>
</profile>
</profiles>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>application-${env}.properties</include>
<include>application.properties</include>
</includes>
</resource>
</resources>
</build>
resources
├── application-dev.properties
├── application-pro.properties
└── application.properties
application.properties
profiles.active=@env@
PropertiesLoader.java
public class PropertiesLoader {
public static void loadProperties() {
try {
System.getProperties().load(PropertiesLoader.class.getClassLoader().getResourceAsStream("application.properties"));
String profileActive = System.getProperty("profiles.active");
System.getProperties().load(PropertiesLoader.class.getClassLoader().getResourceAsStream("application-" + profileActive + ".properties"));
} catch (IOException e) {
throw new RuntimeException("加载配置文件失败!");
}
}
}