在实际开发项目中,常常有几种环境,一般情况下最少有三种环境:开发、测试、正式。
各个环境之间的参数各不相同,比如mysql、等不同环境的host不一样,若每个环境都手动替换环境很容易出错,这里我们利用maven的profile功能切换环境。
项目结构如下
“dev” ---------------> 开发环境
“product”----------->生产环境 开发和生产加载不同的数据库配置文件 db.properties
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"> <profiles> <profile> <id>dev</id> <properties> <env>dev</env> </properties> <activation> <activeByDefault>true</activeByDefault> <!-- 默认加载开发环境的配置文件--> </activation> </profile> <profile> <id>product</id> <properties> <env>product</env> </properties> </profile> <profile> <id>sandbox</id> <properties> <env>sandbox</env> </properties> </profile> </profiles> 。。。。。。。。。。。。。。 <build> <finalName>ROOT</finalName> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.6</version> <configuration> <resourceEncoding>${project.encoding}</resourceEncoding> </configuration> </plugin> 。。。。。。。。。。。。 </plugins> </build>
applicationContext.xml 配置如下
${env} -----> 打包时传入对应的profiles id 就会加载对应的配置文件。
<context:property-placeholder ignore-resource-not-found="false" location="classpath:${env}/db.properties"/>
通过eclipse 打包, Profiles 输入product ,就会加载 product下的配置文件,默认的是开发环境(在pom的profiles中配置)
使用maven 命令
使用 mvn install -P{profile} 命令打包war
example:
1、mvn install 没有指定profile,默认为dev
2、mvn install -Pdev -Dmaven.test.skip=true 指定profile为dev并跳过测试
域名购买.com 后缀好域名
https://mi.aliyun.com/shop/38040