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 ...
随机推荐
- Linux(CENTOS7) Jdk完整步骤安装
方式一: 直接通过yum安装,这种方式比较方便,下面贴上安装jdk1.8*的命令: -openjdk* -y 上面命令执行完成之后,使用下面命令即可查看是否安装成功: java -version 方式 ...
- CentOS7设置阿里镜像教程
阿里镜像官方地址http://mirrors.aliyun.com/ 1.点击官方提供的相应系统的帮助 :2.查看不同版本的系统操作: 为linux系统下载源设置阿里镜像的步骤 : 1. 备份 备份C ...
- LinuxC++开发记录(g++)
g++使用 1. 编译过程 预处理(-E) 编译(-S) 汇编(-c) 链接 1.1 预处理(-E) 为了直观的了解预处理,理解预处理做了哪些工作,不说那么多,直接上代码,创建main.h与main. ...
- AES学习小结
AES是基于数据块的加密方式,即每次处理的数据是一块(16字节),当数据不是16字节的倍数时填充,这就是所谓的分组密码(区别于基于比特位的流密码),16字节是分组长度. AES支持五种模式:CBC,C ...
- Animate.css 一款强大的预设css3动画库
Animate.css是一个有趣的,跨浏览器的css3动画库.很值得我们在项目中引用. 用法 1.首先引入animate css文件 <head> <link rel="s ...
- 用IMX6开发板创建Android模拟器
基于迅为IMX6开发板 在 AndroidStudio 中,单击“Tools”->“Android”->“AVD Manager”选项.弹出 如下对话框,点击红色方框中的按钮. 弹出如下所 ...
- JQuery select,checkbox用法 文本框只能输入数字
记录一下,方便查找 a.文本框只能输入数字 onkeyup='this.value=this.value.replace(/\D/gi,"")' eg: <input typ ...
- PAT Advanced 1032 Sharing(25) [链表]
题目 To store English words, one method is to use linked lists and store a word letter by letter. To s ...
- DataStructuresAndAlgorithm--字谜游戏
参考:http://tieba.baidu.com/p/2071585293 输入是由一些字母构成的一个二维数组以及一些单词组成.目标是要找出字谜中的单词,这些单词可能是水平.垂直或沿对角线上任何方向 ...
- p2p gossip 结构化 非结构化
p2p P2P中文名字叫对等网络,网络中节点地位一致. QQ其实不算P2P,因为QQ利用了中央服务器. Hbase这样的分布式系统,因为有Hmaster节点,也不算是P2P网络: cas ...