Maven3实战笔记13Maven Profile定制化构建
db.Driver=${db.Driver}db.url=${db.url}db.user=${db.user}db.password=${db.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/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><artifactId>MavenAccount-persist</artifactId><packaging>jar</packaging><name>MavenAccount-persist</name><parent><groupId>com.liuyan.account</groupId><artifactId>MavenAccount-aggregator</artifactId><version>0.0.1-SNAPSHOT</version><relativePath>../MavenAccount-aggregator/pom.xml</relativePath></parent><dependencies>………………省略依赖</dependencies><build><resources><resource><directory>${project.basedir}/src/main/resource</directory><filtering>true</filtering></resource></resources></build><profiles><profile><id>test1</id><activation><property><name>env</name><value>dev1</value></property></activation><properties><db.Driver>org.gjt.mm.mysql.Driver</db.Driver><db.url>jdbc:mysql://localhost:3306/uxian99</db.url><db.user>liuyan</db.user><db.password>111111</db.password></properties></profile><profile><id>test2</id><activation><property><name>env</name><value>dev2</value></property></activation><properties><db.Driver>com.mysql.jdbc.Driver</db.Driver><db.url>jdbc:mysql://192.168.1.109:3306/uxian99</db.url><db.user>dba</db.user><db.password>dba</db.password></properties></profile></profiles></project>
package util;import java.io.IOException;import java.io.InputStream;import java.util.Properties;public class ReadConfig {public static String read() throws IOException {InputStream in = ClassLoader.getSystemResourceAsStream("db.properties");Properties p = new Properties();p.load(in);String dbDriver = (String) p.get("db.Driver");String dburl = (String) p.get("db.url");String dbuser = (String) p.get("db.user");String dbpassword = (String) p.get("db.password");System.out.println(dbDriver);System.out.println(dburl);System.out.println(dbuser);System.out.println(dbpassword);return dbpassword;}}
package util;import static org.junit.Assert.assertTrue;import java.io.IOException;import org.junit.Test;public class ReadConfigTest {@Testpublic void testGenerateText() throws IOException {String password = ReadConfig.read();System.out.println(password);assertTrue(password.equals("dba"));}}
mvn clean package Ptest2
------------------------------------------------------- T E S T S-------------------------------------------------------Running util.ReadConfigTestcom.mysql.jdbc.Driverjdbc:mysql://192.168.1.109:3306/uxian99dbadbadbaTests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.078 secResults :Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
db.Driver=com.mysql.jdbc.Driverdb.url=jdbc:mysql://192.168.1.109:3306/uxian99db.user=dbadb.password=dba
mvn clean package -Denv=dev1
------------------------------------------------------- T E S T S-------------------------------------------------------Running util.ReadConfigTestorg.gjt.mm.mysql.Driverjdbc:mysql://localhost:3306/uxian99liuyan111111111111Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.062 sec <<< FAILURE!Results :Failed tests: testGenerateText(util.ReadConfigTest)Tests run: 1, Failures: 1, Errors: 0, Skipped: 0
?