使用maven profile指定配置文件打包适用多环境的方法

开发过程, 我们习惯把数据源配置, 项目常量, 日志配置等基础数据配置写到一个个单独的的文件中. 如jdbc.properties等各种.格式的文件.

如何不频繁修改配置文件, 随时打包不同基础数据配置信息的项目.

1.新建maven项目,   在pom.xml中添加 profile节点信息如下:

<profiles>
		<profile>
			<!-- 开发环境 -->
			<id>dev</id>
			<properties>
				<environment>development</environment><!-- 节点名字environment是自己随意取的 -->
			</properties>
			<activation>
				<activeByDefault>true</activeByDefault><!-- 默认激活该profile节点-->
			</activation>
		</profile>
		<profile>
			<!-- 测试环境 -->
			<id>test</id>
			<properties>
				<environment>test</environment>
			</properties>
		</profile>
		<profile>
			<!-- 预演环境 -->
			<id>prev</id>
			<properties>
				<environment>preview</environment>
			</properties>
		</profile>
		<profile>
			<!-- 生产环境 -->
			<id>prod</id>
			<properties>
				<environment>production</environment>
			</properties>
		</profile>
</profiles>

2. 在项目中添加各环境需要的数据源配置文件,分不同目录存放, 分别是开发,测试, 预演,生产  环境. 如下图左边部分所示.

3. pom.xml中配置resource节点信息.

<build>
		<resources>
			<resource>
				<directory>src/main/resources</directory>
				<excludes>
					<exclude>environment/development/*</exclude>
					<exclude>environment/test/*</exclude>
					<exclude>environment/preview/*</exclude>
        	        <exclude>environment/production/**</exclude>
				</excludes>
			</resource>
			<resource>
				<directory>src/main/resources/environment/${environment}</directory>
				<targetPath>environment/${environment}</targetPath>
			</resource>
		</resources>
	</build>

resource节点信息解释:

<directory>src/main/resources</directory> <!--打包时包含src/main/resources目录下所有"子"文件 和 "孙"文件.如config 和environment -->
<exclude>environment/development/**</exclude> <!--打包时排除src/main/resources/environment/development下所有"子"文件 和 "孙"文件.-->
<exclude>environment/test/**</exclude> <!--打包时排除src/main/resources/environment/test下所有"子"文件 和 "孙"文件.-->
<exclude>environment/preview/**</exclude> <!--打包时排除src/main/resources/environment/preview下所有"子"文件 和 "孙"文件.-->
<exclude>environment/production/**</exclude><!--打包时排除src/main/resources/environment/production下所有"子"文件 和 "孙"文件.-->
<!-- 注意点: 如果写一个心号*, 如<exclude>environment/development/*</exclude> 则表示:打包时排除src/main/resources/environment/development下所有"子"文件, 不排除"孙"文件, 如上一个截图所示.-->
<!-- 以上配置优先度从上到下 递增, 这就达到目的: config目录下的配置各环境都需要, 而其它环境相关的配置只会有一个目录被打包--->
<directory>src/main/resources/environment/${environment}</directory> <!-- 打包时包含src/main/resources/environment/${environment}下所有"子"文件,environment变量值来自profile中赋值 -->
<targetPath>environment/${environment}</targetPath><!--指定src/main/resources/environment/${environment}所有"子文件" 打包 到包的哪个目录 -->

4.  项目打包.   打包命令mvn package -Pdev来指定激活id为 dev 的profile节点, 这样, 开发环境配置文件就会被打包.

开发: mvn package -Pdev (因为配置了默认激活dev部分, 所以也可以使用mvn package, 这与 mvn package -Pdev 效果相同)

测试: mvn package -Ptest

预演:mvn package -Pprev

生产:mvn package -Pprod

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 详解Maven环境的搭建与idea配置

    本文主要介绍了Maven环境的搭建与idea配置,分享给大家,具体如下: Maven 下载: http://maven.apache.org/download.cgi Maven 中央仓库地址:http://search.maven.org 配置maven环境变量 M2_HOME:D:\workspace\maven\apache-maven-3.0.5 Path:;%M2_HOME%/bin; 检查是否成功,打开CMD: Mvn -v mvn install 会将项目生成的构件安装到本地Mav

  • Eclipse配置maven环境的图文教程

    一.什么是maven? Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑.当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定

  • window下安装和配置maven环境

    本文实例为大家分享了安装和配置maven环境的具体步骤,供大家参考,具体内容如下 下载maven: 1.进入官网下载:http://maven.apache.org/download.cgi 注意事项:(截至目前2015年12月1日)最新版本的Maven3.3.9必须在JDK1.7版本以上运行. 2.下载后复制到我们自己心仪的目录解压即可. 配置maven的环境变量: 1.计算机-鼠标右键选择属性-高级系统设置-环境变量,然后新建一个变量名为M2_HOME,变量值为maven安装目录,确定保存.

  • maven环境变量配置以及失败原因解析

    本文为大家分享了maven环境变量配置的具体方法,供大家参考,具体内容如下 一.maven环境配置 1.解压apache-maven-x.x.x-bin.zip,最好不要解压到C盘 2.配置环境变量,右击"我的电脑"--"属性"--"高级系统设置"--"环境变量","系统变量"--"新建" 填写maven安装目录: 变量名:MAVEN_HOME 变量值:D:\apache-maven\a

  • java 配置MyEclipse Maven环境具体实现步骤

     java 配置MyEclipse Maven环境 虽然我的大部分项目已经迁到Idea上去了,但是在写部分小的测试程序的时候还是习惯性的会点开MyEclipse.之前使用第三方库的时候 我会习惯的下载jar包,然后build path导入,但是在idea中貌似通过配置maven依赖更方便,于是我在MyEclipse中也想使用pom.xml来导入依赖,在尝试的过程中遇到了些问题,我这里是记录解决这些问题的方法. 环境 Myeclipse for spring  2014 JRE 8 Maven 3

  • IDEA-Maven环境配置及使用教程

    一.Maven的下载 IDEA的往期下载地址:https://www.jetbrains.com/ 1.点击进入 1.往期的下载地址:http://www.apache.org/ 操作步骤:我们点击进入Projects---->如图 (1) . (2). (3). (4). (5).解压后我们可以看到这个目录 (6).解压文件后,我们要新增两个环境变量 1.M2_HOME------------------>D:\javafile\apache-maven-3.5.0 2.PATH:-----

  • Maven下载和配置环境教程

    Maven下载和环境配置教程分享给大家. 1.下载 Maven 的网址 www.apache.org www.apache.org 下载放到自己的文件夹里然后解压出来 然后配置环境,打开 我的电脑 按鼠标右键右键 属性 按 新建 然后进来cmd命令里运行 然后在把刚刚下载的 Maven 打开 然后打开IDEA 如果刚刚在配置环境是你打开了IDEA 那么你关闭从新打开IDEA 然后自己创建一个项目 然后会自动下载 要等一会 下载完后会出现这样表示成功 然后打开浏览器输入网址 http://mvnr

  • Maven根据不同环境打包不同配置文件的方法

    开发项目时会遇到这个问题:开发环境,测试环境,生产环境的配置文件不同,打包时经常要手动更改配置文件,更改的少还可以接受,但是如果需要更多个配置文件,手动的方法就显得非常笨重了. 下面介绍一种方法,利用Maven插件来打包不同环境的配置文件.我们用到的是maven-war-plugin这个插件. 首先贴出整个pom文件: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.

  • maven安装与环境配置图文教程

    本文为大家分享了maven安装与环境配置教程的具体方法,供大家参考,具体内容如下 软件环境: Window 7 Java 8 Maven 3.5.0 MyEclipse Professional 2014 1.下载maven 官网下载地址 2.解压缩到固定目录 本例中解压缩在d盘根目录,安装目录为:D:\apache-maven-3.5.0 3.修改本地仓库路径 在conf/settings.xml文件里,追加一行,写上仓库路径. 默认路径是在C:\Users\Administrator\.m2

  • 使用maven profile指定配置文件打包适用多环境的方法

    开发过程, 我们习惯把数据源配置, 项目常量, 日志配置等基础数据配置写到一个个单独的的文件中. 如jdbc.properties等各种.格式的文件. 如何不频繁修改配置文件, 随时打包不同基础数据配置信息的项目. 1.新建maven项目,   在pom.xml中添加 profile节点信息如下: <profiles> <profile> <!-- 开发环境 --> <id>dev</id> <properties> <envi

  • maven profile动态选择配置文件详解

    一.背景 在开发过程中,我们的软件会面对不同的运行环境,比如开发环境.测试环境.生产环境,而我们的软件在不同的环境中,有的配置可能会不一样,比如数据源配置.日志文件配置.以及一些软件运行过程中的基本配置,那每次我们将软件部署到不同的环境时,都需要修改相应的配置文件,这样来回修改,很容易出错,而且浪费劳动力. maven提供了一种方便的解决这种问题的方案,就是profile功能. 二.profile简介 profile可以让我们定义一系列的配置信息,然后指定其激活条件.这样我们就可以定义多个pro

  • Java随手笔记8之包、环境变量和访问控制及maven profile实现多环境打包

    一.java中的包 Java利用包来组织代码,一来使大型项目的代码结构清晰,二来包是一个命名空间的划分,即不同包中可以有相同名字的类,只需在在类名前加上包名即可区分它们. Package xxx 必须位于java文件除了注释以外的第一行,用来指明当前文件中的类属于哪一个包,如果没有package语句,则该文件中的类都属于默认包. Import xxx用来在当前java文件中导入不属于当前包中的类,从而可以在当前文件中使用它们. 二.java中的环境变量 1.path 环境变量其实就是一组变量(废

  • maven profile自动切换环境参数的2种方法详解

    前言 痛点: 在java开发的过程中,我们经常要面对各种各样的环境,比如开发环境,测试环境,正式环境,而这些环境对项目的需求也不相同. 在此之前,我们往往需要手动去修改相对应的配置文件然后打成war,才能部署到相应的环境上. 但是这样很容易出现问题,因为很容易出现少改或者漏改,造成不必要的麻烦 幻想: 要是有一种东西,能让我们打war的时候指定一个参数,就能自动把项目编译成对应环境的war,那该有多幸福啊!!! 结果:这样的东西还真有,那就是maven-profile 在开发过程中,我们经常会根

  • Maven profile实现不同环境的配置管理实践

    前言 目前,企业项目的开发过程中,往往会使用配置文件来做一些配置项来实现项目部署的灵活性,避免硬编码的方式在环境变化时需要对代码进行重新编译.但是往往在项目周期中存在着各种环境:如开发环境.测试环境以及生产环境等,而且在不同的运行环境中可能牵扯到大量的配置项变化.如果在不同的部署环境中切换,对配置文件的管理往往容易让程序员感觉非常的混乱. 为了避免这种换乱,研发过程中也有比较多的手段进行.比如,有公司就采用VPN的虚拟网络环境,让测试环境.生产环境的网络一致,让程序员在不同环境中对版本进行发布时

  • maven 使用assembly 进行打包的方法

    1. pom 中添加assembly 插件 要使用assembly 进项编译打包, 首先主要在pom 中的build中添加插件信息, 具体如图下所示: <build> <finalName>${project.artifactId}</finalName> <sourceDirectory>src/main/java</sourceDirectory> <resources> <resource> <director

  • springboot实现maven多模块和打包部署

    目录 创建多模块项目 依赖关系 开发工具 :idea 工程结构: 父工程father 子模块 dao (用于持久化数据跟数据库交互) 子模块 entity (实体类) 子模块 service (处理业务逻辑) 子模块 web (页面交互接收.传递数据,唯一有启动类的模块) 关系: web依赖 service.dao.entity service依赖 dao.entity dao依赖 entity entity谁都不依赖,独立的 创建多模块项目 new ------file-------proje

  • maven多模块工程打包部署的方法步骤

    一般maven多模块工程结构如下图,图中分为dao数据层和上层web层(当然还可以有service层),在进行多模块划分的时候,一般将dao层采用jar进行打包,web层进行war打包.在进行war包部署时,发现dao是以jar包形式存在于lib包目录下,如果在部署服务器上需要进行相关配置修改会比较麻烦.因此研究了下用maven进行合并打包的方法: 1.确保dao pom.xml中有以下配置 <resources> <resource> <directory>${bas

  • SpringBoot使用Maven插件进行项目打包的方法

    SpringBoot自带Tomcat,所以我们的项目可以单独部署,不需要依赖Window.Linux系统中的服务器,所以打包出来的Jar包是可以直接运行的.Windows中直接cmd命令行模式下,cd切换到jar路径中,使用java 命令运行jart包,Linux环境也是一样的命令,如下图: 现在我们开始打包,我介绍两种方式,不管那种方式首先先在项目Pom.xml文件中引入Maven插件. <build> <plugins> <!-- 设置jdk版本为1.8 --> &

  • 详解Maven profile配置管理及激活profile的几种方式

    为了实现不同环境构建的不同需求,这里使用到了 profile.因为 profile 能够在构建时修改 pom 的一个子集,或者添加额外的配置元素.接下来介绍 Maven 中对 profile 的配置和激活. 针对不同环境的 profile 的配置 为了体现不同环境的不同构建,需要配置好不同环境的 profile,代码如下: <profiles> <profile> <id>dev_evn</id> <properties> <db.driv

随机推荐