Maven 使用profile以占位符的形式指定开发、生产等不同的环境

来源:互联网 发布:sony xperia m35c 网络 编辑:程序博客网 时间:2024/06/05 02:33


jdbc.properties

#\u8FD9\u662Fdev\u73AF\u5883\u914D\u7F6E  
jdbc_url=${jdbc_url}
jdbc_user=${jdbc_user} 
jdbc_password=${jdbc_password} 


pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.m2.envs</groupId><artifactId>envs-demo</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>envs-demo</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.7</version><scope>test</scope></dependency></dependencies><profiles><!-- 开发环境,默认使用这套环境 activeByDefault为true --><profile><id>dev</id><properties><profiles.active>dev</profiles.active><jdbc_url>jdbc:mysql://127.0.0.1:3306/abcdev</jdbc_url><jdbc_user>dev</jdbc_user><jdbc_password>root</jdbc_password></properties><activation><activeByDefault>true</activeByDefault></activation></profile><!-- 正式环境 --><profile><id>pro</id><properties><profiles.active>pro</profiles.active><jdbc_url>jdbc:mysql://127.0.0.1:3306/abcpro</jdbc_url><jdbc_user>pro</jdbc_user><jdbc_password>root</jdbc_password></properties></profile></profiles><build><resources><resource><!-- 打包 src/main/resources下资源 --><directory>src/main/resources</directory><!-- 对这资源内的文件有占位符的地方用实际值替换占位符 --><filtering>true</filtering></resource></resources></build></project>


App.java

package com.m2.envs.envs_demo;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.util.Properties;/** * Hello world! * 需要先用maven编译,再执行main方法测试 * */public class App {    public static void main( String[] args ) throws IOException    {        System.out.println( "Hello World!" );       InputStream resourceAsStream = App.class.getClassLoader().getResourceAsStream("jdbc.properties");       Properties properties = new Properties();       properties.load(new InputStreamReader(resourceAsStream, "utf-8")); //防止中文乱码,没有直接load resourceAsStream       System.out.println(properties.get("jdbc_user"));    }}


mvn clean compile -Pdev  开发环境,-Pdev可以省去默认开发

mvn clean compile -Ppro 正式环境

实现根据参数不同编译生成不同的配置文件 jdbc.properties

阅读全文
0 0
原创粉丝点击