Profile能讓你爲一個特殊的環境自定義一個特殊的構建;profile使得不一樣環境間構建的可移植性成爲可能。不一樣的構建環境是什麼意思?構建環境的兩個例子是產品環境和開發環境。當你在開發環境中工做時,你的系統可能被配置成訪問運行在你本機的開發數據庫實例,而在產品環境中,你的系統被配置成從產品數據庫讀取數據。Maven能讓你定義任意數量的構建環境(構建profile),這些定義能夠覆蓋pom.xml中的任何配置。你能夠配置你的應用程序,在「開發」profile中,訪問本地的開發數據庫實例,在「產品」profile中,訪問產品數據庫。Profile也能夠經過環境和平臺被激活,你能夠自定義一個構建,它根據不一樣的操做系統或者不一樣的JDK版本有不一樣的行爲。
mysql
---《maven權威指南》spring
個人理解是一個profile就是一種構建環境,咱們能夠經過激活咱們自定義的構建環境來覆蓋已有的maven環境配置。sql
<profiles> <profile> <id>dev</id> <properties> <db.url>jdbc:mysql://localhost:3306/ddd</db.url> </properties> </profile> <profile> <id>test</id> <properties> <db.url>jdbc:mysql://192.168.1.235:3306/ddd</db.url> </properties> </profile> </profiles> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <db.url>jdbc:mysql://192.168.1.235:3306/ddd</db.url> </properties>
db.jdbc.url=${db.url} baseConfig.jndiName=${db.jndiName}
在build裏面加入數據庫
<!-- 屬性文件額能夠訪問maven中的屬性 --> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources>
<context:property-placeholder location="classpath*:META-INF/props/*.properties" ignore-unresolvable="true" />
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"> </property> <property name="url" value="${db.jdbc.url}"> </property> <property name="username" value="root"></property> <property name="password" value="root"></property> </bean>
jetty:run -Djetty.port=9080 -Dmaven.test.skip=true -Pdev運行項目apache
關於maven的profile使用細節比較多,但一旦掌握將大大增長咱們的工做效率,各位有空可自行研究下。關於maven的使用可參考《maven權威指南》一書。maven