前言:對於一個項目,開發和生產環境之間會使用不一樣的配置文件,最簡單的例子就是數據庫鏈接池的配置了。固然,能夠在打包上線前對配置文件進行替換,不過這也太low了吧。mysql
<!--在build標籤中--> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <!-- 指定端口 --> <port>8821</port> <!-- 請求路徑 --> <path>/</path> </configuration> </plugin> <plugins>
指定了端口號是8821,啓動項目後(在idea右邊的maven project),就能夠使用8821端口訪問。sql
<!--和build平級--> <profiles> <profile> <!--開發環境,這個id就是名稱--> <id>dev</id> <properties> <!--這個標籤就是定義你要設定的properties中的屬性--> <tomcat_port>8821</tomcat_port> </properties> </profile> <profile> <!--生產環境--> <id>pro</id> <properties> <tomcat_port>8821</tomcat_port> </properties> </profile> </profiles>
-P 環境id
,在idea中,右鍵這個maven命令,就能夠設置了設置完後,點擊運行,
數據庫
除了tomcat:run 外,其餘的maven命令,如:apache
package -P dev install -P pro
這些都是能夠的。tomcat
和上邊的方法相似,不一樣的是它會引入項目中的properties配置文件服務器
#這個env前綴能夠自定義,也能夠不用 env.jdbc.driver=com.mysql.jdbc.Driver env.jdbc.url=jdbc:mysql://localhost:3306/tb_dev?characterEncoding=utf-8 env.jdbc.username=dev env.jdbc.password=dev
也建立一個db_pro.propertiesmaven
#這個env前綴能夠自定義,也能夠不用 env.jdbc.driver=com.mysql.jdbc.Driver env.jdbc.url=jdbc:mysql://localhost:3306/tb_pro?characterEncoding=utf-8 env.jdbc.username=pro env.jdbc.password=pro
#以前寫的是肯定的地址,這回就使用變量 jdbc.driver=${env.jdbc.driver} jdbc.url=${env.jdbc.url} jdbc.username=${env.jdbc.username} jdbc.password=${env.jdbc.password}
<properties> <!--這個db_env是自定義的,隨便起--> <db_env>dev</db_env> </properties>
<profiles> <profile> <!--環境名--> <id>dev</id> <properties> <!--這個名要和以前定義的db_dev.properties中的dev相同,下邊會看到拼接--> <db_env>dev</db_env> </properties> </profile> <profile> <id>pro</id> <properties> <db_env>pro</db_env> </properties> </profile> </profiles>
<filters> <filter>src/main/resources/dbprops/db_${db_env}.properties</filter> </filters> <resources> <resource> <!--這是攔截這個目錄下的配置文件,進行處理--> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources>
好了,咱們這使用指定打包
package -P pro
而後用觸壓生成的war包,打開WEB-INF\classes\db.properties文件能夠看到
ide