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实现多环境搭建的更多相关文章
- Jenkins+Maven+Git CI环境搭建手册
Jenkins+Maven+Git CI环境搭建手册 环境: OS:Linux version 2.6.32-220.23.2.ali878.el6.x86_64 (ads@kbuild) (gcc ...
- Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例【附详细代码】
http://blog.csdn.net/xiefu5hh/article/details/51707529 Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例[附 ...
- 项目管理利器maven学习笔记(一):maven介绍及环境搭建
maven介绍 maven下载与环境搭建 http://maven.apache.org/download.cgi# 解压到指定位置,比如我解压到D盘 设置maven环境变量 添加一个变量名,变量值为 ...
- Eclipse+maven+scala+spark环境搭建
准备条件 我用的Eclipse版本 Eclipse Java EE IDE for Web Developers. Version: Luna Release (4.4.0) 我用的是Eclipse ...
- Maven介绍及环境搭建
Maven介绍及环境搭建 Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建.报告和文档的软件项目管理工具. 下载Maven boot:类加载器框架,Maven使用它加在自 ...
- centos7下Maven Java selenium3环境搭建
centos7下Maven Java selenium3环境搭建 一.Jdk安装 我这里用的是open-jdk. [adawang@localhost src]$ sudo yum search op ...
- Maven快速入门(一)Maven介绍及环境搭建
做开发的程序员都知道,在系统开发需要各自各样的框架.工具.其中有一种工具不管你是初级程序员还是高级程序员都必须熟练掌握的,那就是项目管理工具(maven.ant.gradle).接下来就总结Maven ...
- Maven仓库—Nexus环境搭建及简单介绍
1. 环境搭建 1.1 下载 http://www.sonatype.org/nexus/ NEXUS OSS [OSS = Open Source Software,开源软件--免费] NE ...
- Appium+Maven+TestNG(ReportNG)环境搭建(详细过程)
最近群里经常有人会问到关于maven构建Appium测试项目以及使用testNG生成测试报告的问题,试着搭建了一下,下面是过程: jdk安装过程我这里就不说了 一.下载eclipse,推荐下载Ecli ...
- Maven仓库-Nexus环境搭建及简单介绍
1. 环境搭建 1.1 下载 http://www.sonatype.org/nexus/ NEXUS OSS [OSS = Open Source Software,开源软件——免费] NE ...
随机推荐
- Python笔记_第四篇_高阶编程_检测_2.对类进行单元检测
1. 对类进行单元检测: 第一步:首先编写一个类: # 类名Person,person.py class Person(object): def __init__(self,name,age): se ...
- UVA 515 差分约束 SPFA判负
第一次看这个题目,完全不知道怎么做,看起来又像是可以建个图进行搜索,但题目条件就给了你几个不等式,这是怎么个做法...之后google了下才知道还有个差分约束这样的东西,能够把不等式化成图,要求某个点 ...
- 【转载】解决Cannot download "https://github.com/sass/node-sass/releases/download...问题
因很早做了一个小demo,并且在其他成熟的电脑上(node配置好的)下载依赖包没什么问题,最近就在新的电脑上配置好所有东西后,去下载这个demo的依赖包,就出现了node-sass无法正常解析的问题, ...
- Maven--Maven 入门
1.POM <?xml version="1.0" encoding="utf-8" ?> <project xmlns="http ...
- Linux中PATH、 LIBRARY_PATH、 LD_LIBRARY_PATH和ROS_PACKAGE_PATH
PATH 保存可执行文件程序路径,我们命令行中每一句能运行的命令都是系统先通过PATH来找到命令执行文件所在的位置,再运行这个命令. 实验:执行echo $PATH 能看到当前环境PATH都是配置了哪 ...
- 5.windows-oracle实战第五课 --事务、函数
什么是事务 事务用于保证数据的一致性,它由一组相关的dml语句组成,该组的dml语句要么全部成功,要么全部失败. 事务和锁 当执行一个事务dml的时候,oracle会被作用 ...
- java package 包 学习笔记
编译命令示例: javac -d . Main.java 注:带参数-d自动建立文件目录, 只使用javac 则需要手工创建目录 把 class文件打包 jar命令 jar cvf T.jar *; ...
- nodepad++ 让所有的加号收缩折叠展开的快捷键
折叠所有层次 Alt+0(这是零) 展开所有层次 Alt+Shift+0
- vs code打开文件显示的中文乱码
这种情况下,一般是编码格式导致的,操作办法: 鼠标点击之后,上面会弹出这个界面,双击选中 然后从UTF-8换到GB2312,或者自己根据情况,更改编码格式
- python学习笔记(29)-操作excel
操作excel #存到excel里面,python去操作excel文件 #只支持这种后缀,xlsx ,openpyxl只支持这种格式 # from openpyxl import load_workb ...