前言:对于一个项目,开发和生产环境之间会使用不一样的配置文件,最简单的例子就是数据库链接池的配置了。固然,能够在打包上线前对配置文件进行替换,不过这也太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