最近接触的项目都是在很多地方都落地的项目,需要支持不同的环境使用不同的配置文件。一直以来都以为是人工的去写不同的配置文件,手动的去修改运用的配置文件。感觉自己还是太low呀。maven的使用的还停留在基础上。后面看项目才发现maven可以不同环境不同的发布,只需要制定环境参数或者设置就可以,整个工程简单粗暴。觉的非常不错,于是想深入的了解一下。写下此文.

一、maven profile介绍

  profile可以让我们定义一系列的配置信息,然后指定其在相应的环境下使用相应的配置文件。这样我们就可以根据环境的不同切换不同的配置文件,然后每个profile对应不同的激活条件和配置信息,从而达到不同环境使用不同配置信息的效果。for example,我们的项目落地不同的地域,每个地域都有每个地域特色的功能,需要我们配置不同一些参数。更加实际的情况是我们的生产环境与测试环境使用不同的数据库,账号密码、连接地址可能不一样,如果每次你都切换环境都需要自己手动去修改这些东西,一次两次你可能觉的还好,每次测试、上线都需要修改的时候我保证你会疯的。相信我!哈哈,这个时候就是profile的作用,可以一次性解决你的问题。特别结合持续集成工具的时候,profile可以很方便的上线发布。

二、如何配置profile

  profile有三种配置方式:

    单个项目配置:第一种是直接在pom.xml中配置

    用户配置:可以在用户的setting.xml中配置。该文件在用户家目录下的“.m2”目录下。

    全局配置:可以在maven的conf的setting.xml中配置。

  在pom.xml中配置的用法(个人推荐)

<profiles>
<!--本机环境(127.0.0.1) -->
<profile>
<id>local</id>//指定profile id
<properties>
<dir>conf</dir>//配置文件所在位置
<env>ecosp_develop_local</env>//文件名
<suffix>local</suffix>
</properties>
    <activation>
      <activeByDefault>true</activeByDefault>//默认使用的配置文件
    </activation>
</profile>
<!--测试环境(172。0.0.1) -->
<profile>
<id>test</id>
<properties>
<dir>conf</dir>
<env>ecosp_develop_test</env>
<suffix>test</suffix>
</properties>
</profile>
<profiles>

  setting.xml中配置profile

  当profile定义在settings.xml中时意味着该profile是全局的,它会对所有项目或者某一用户的所有项目都产生作用。因为它是全局的,所以在settings.xml中只能定义一些相对而言范围宽泛一点的配置信息,比如远程仓库等。而一些比较细致一点的需要根据项目的不同来定义的就需要定义在项目的pom.xml中。具体而言,能够定义在settings.xml中的信息有<repositories>、<pluginRepositories>和<properties>。定义在<properties>里面的键值对可以在pom.xml中使用。

三、如何使用profile

  1、如何制定使用那个profile

    pom.xml中的activation标签可以设置默认使用的profile.

    setting.xml的activeProfiles标签可以设置使用的profile。

    mvn package –P test命令,-P指定了使用那个profile。

四、总结

  1、使项目适配不同的环境非常方便,提高开发效率。

  2、依赖于maven。

项目实现不同环境不同配置文件-maven profile的更多相关文章

  1. Linux环境变量配置文件/etc/profile、/etc/bashrc、~/.bashrc的区别以及一些隐藏文件的作用

    ①/etc/profile: 该文件登录操作系统时,为每个用户设置环境信息,当用户第一次登录时,该文件被执行.也就是说这个文件对每个shell都有效,用于获取系统的环境信息. ②/etc/bashrc ...

  2. Maven profile 打包分环境加载不同的资源文件

    在实际开发项目中,常常有几种环境,一般情况下最少有三种环境:开发.测试.正式. 各个环境之间的参数各不相同,比如mysql.等不同环境的host不一样,若每个环境都手动替换环境很容易出错,这里我们利用 ...

  3. shell编程之环境变量配置文件(4)

    1 source命令 修改了配置文件,并让它立刻生效,而不用重新登录 source 配置文件 或者 .配置文件 2 环境变量配置文件简介 PATH HISTSIZE PS1 HOSTNAME等环境变量 ...

  4. Linux centosVMware shell 管道符和作业控制、shell变量、环境变量配置文件

    一.管道符和作业控制 管道符|,用于将前一个指令的输出作为后一个指令的输入 #cat /etc/passwd|wc -l  作业控制:当运行程序时,可以使它暂停(Ctrl+Z组合键),然后使用fg(f ...

  5. Shell系列(16)- 环境变量配置文件简介及source命令

    变量类型 用户自定义变量(本地变量) 环境变量 预定义变量 位置参数变量 source命令 [root@localhost ~]# source 配置文件 或 [root@localhost ~]# ...

  6. maven profile动态选择配置文件

    一.背景 在开发过程中,我们的软件会面对不同的运行环境,比如开发环境.测试环境.生产环境,而我们的软件在不同的环境中,有的配置可能会不一样,比如数据源配置.日志文件配置.以及一些软件运行过程中的基本配 ...

  7. maven profile实现多环境打包

    快速解决: 项目目录 1.pom文件中添加profile <profiles> <profile> <!-- 本地开发环境 --> <id>dev< ...

  8. 通过maven profile 打包指定环境配置

    背景 最近换了个新公司接手了一个老项目,然后比较坑的是这个公司的项目都没有没有做多环境打包配置,每次发布一个环境都要手动的去修改配置文件.今天正好有空就来配置下. 解决这个问题的方式有很多,我这里挑选 ...

  9. maven profile实现多环境配置

    每次项目部署上线都需要手动去修改配置文件(比如数据库配置,或者一个自定义的配置)然后才能打包,很麻烦,网上找到 maven profile可以完成这个工作,记录如下: 环境:eclipse + spr ...

随机推荐

  1. Ajax 提交KindEditor的数据

    这次我是在EasyUI中使用了KindEditor的编辑器,按照官方给的代码,总是无法获取编辑器里面的值(内容),如下:         KindEditor.ready(function (K) { ...

  2. SQL Tuning 基础概述08 - SQL Tuning Advisor

    SQL调优顾问 SQL Tuning Advisor的使用案例: 1.构建测试表T 2.定义调整任务 3.修改调整任务参数 4.执行调整任务 5.监控调整任务 6.查看调整任务建议 7.删除调整任务 ...

  3. ORA-01034:ORACLE not available问题的解决方法

    同时在自己电脑上装了oracle客户端和服务器,上次还能用呢,这次突然用不了. [oracle@R39i oracle]$ sqlplus scott/tiger SQL*Plus: Release ...

  4. u-boot源码分析之C语言段

    题外话: 最近一直在学习u-boot的源代码,从代码量到代码风格,都让我认识到什么才是真正的程序.以往我所学到的C语言知识和u-boot的源代码相比,实在不值一提.说到底,机器都是0和1控制的.感觉这 ...

  5. ASP.NET Core 中文文档 第二章 指南(4.10)检查自动生成的Detail方法和Delete方法

    原文 Examining the Details and Delete methods 作者 Rick Anderson 翻译 谢炀(Kiler) 校对 许登洋(Seay).姚阿勇(Mr.Yao) 打 ...

  6. 在DevExpress程序中使用Winform分页控件直接录入数据并保存

    一般情况下,我们都倾向于使用一个组织比较好的独立界面来录入或者展示相关的数据,这样处理比较规范,也方便显示比较复杂的数据.不过在一些情况下,我们也可能需要直接在GridView表格上直接录入或者修改数 ...

  7. ASP.NET WebApi 文档Swagger中度优化

    本文版权归博客园和作者吴双本人共同所有,转载和爬虫请注明原文地址:www.cnblogs.com/tdws   写在前面 在后台接口开发中,接口文档是必不可少的.在复杂的业务当中和多人对接的情况下,简 ...

  8. WPF 自定义ContextMenu且为左键点击显示

    <Button Click="Button_Click_3" Style="{StaticResource NormalButtonStyle}"> ...

  9. 来玩Play框架05 数据库

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 数据库是整个站点的数据储藏室.用户提交的数据可以存储在数据库中,以便未来使用.Pl ...

  10. 网页mp3语音展示,点击图片放大,点击图片跳转链接,调表格

    查看mp3语音 <td class="value"><embed src="${sounds.soundName}" type="a ...