MAVEN实现多环境搭建
Posted 愤怒的绿萝
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MAVEN实现多环境搭建相关的知识,希望对你有一定的参考价值。
在实际的开发中,会遇到开发环境的不同(开发环境,测试环境,线上环境),会来回根据环境的不同修改配置文件,一不小心修改错误导致无法正常运行,故障排除导致开发效率低。使用maven可以根据环境的不同,自动生成需要的配置文件,减少因为配置文件配置错误导致的人为故障
实现环境:j2ee环境
dev.properties配置文件的内容
db.username=name_dev
db.password=password_dev
local.properties配置文件的内容
db.username=name_local
db.password=password_local
config.properties配置文件的内容
db.username=${db.username}
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> <groupId>com.major</groupId> <artifactId>mavenTest</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>mavenTest Maven Webapp</name> <!-- 项目依赖包 --> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <!-- 项目配置文件 --> <profiles> <profile> <!-- 定义local配置文件 --> <id>local</id> <properties> <!-- 定义变量package.env为local,为后面调用 --> <package.dev>local</package.dev> </properties> </profile> <profile> <id>dev</id> <properties> <package.dev>dev</package.dev> </properties> </profile> </profiles> <!-- 打包配置 --> <build> <plugins> <!-- 配置打包插件 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <!-- 配置jdk版本 --> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> <!-- 配置war插件 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.1.1</version> <configuration> <archive> <addMavenDescriptor>false</addMavenDescriptor> </archive> <warName>${project.artifactId}</warName> <!-- 排除不需要的配置文件,如果不排除env目录下的配置文件,会导致env目录下的配置文件也会打包到war包中 --> <excludes>src/env</excludes> </configuration> </plugin> </plugins> <!-- 配置资源文件 --> <resources> <resource> <!-- 该资源目录,其中${basedir}表示maven项目根目录 --> <directory>${basedir}/src/main/resources</directory> <!-- 包含文件,如果不过滤文件,可以使用*代替所有 --> <includes> <include>config.properties</include> </includes> <!-- 是否对包括的文件进行过滤(就是使用配置文件中的内容替换改文件中的变量) --> <filtering>true</filtering> </resource> </resources> <!-- 配置文件过滤 --> <filters> <!-- 使用该配置文件内容替换资源文件,其中 ${package.dev}为上面定义的变量,如果选择dev则为dev.properties中的内容来替换--> <filter> ${basedir}/src/env/${package.dev}.properties </filter> </filters> </build> </project>
开始maven编译:
右击项目-->maven-->select maven profiles选择配置文件
右击项目-->run as --> maven install
控制台输出信息
这个时候可以在该项目的目录下的target目录中找到编译好的war包
打开可以看到配置文件已经自动完成替换
到此完成maven多环境配置搭建,如果是开发环境,可以选择local,如果时线上环境,可以选择dev,当然有可以添加多个适应多个开发环境的使用
以上是关于MAVEN实现多环境搭建的主要内容,如果未能解决你的问题,请参考以下文章
spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象(代码片段
02-Maven高级-分模块开发依赖传递聚合继承(SpringBoot的部分底层原理)多模块开发(环境切换)Nexus私服搭建与使用
Maven 项目使用mybatis的环境搭建-基于xml形式实现查询所有的功能