应用场景

  • 我们在开发的时候会遇到需要区分正式环境、测试环境、开发环境使用不同的参数,如数据库的用户名及密码等。这时可以用Spring 的PropertyPlaceholderConfigurer 来配置受环境影响的变量,这种使用多个配置文件的方式,但是我觉得这样不够灵活,所以就使用了maven的profiles 来实现,在打包的时候maven就会根据指定的配置参数写入文件。
  • 配置方式分为两种,一种是全局配置即在.m2/conf/setting.xml 里面配置实现全局,一种是在项目中的pom.xml配置,这里我没有用到全局方式,就不详细介绍,我们主要介绍项目中配置方式。

实现

1.pom.xml配置

    <build>
<!-- 配置使用变量的配置文件-->
<filters>
<filter>src/main/resources/application.properties</filter>
</filters>
<resources>
<!--配置文件路径-->
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
<profiles>
<profile>
<id>local</id>
<properties>
<pom.env>dev</pom.env>
<pom.ver>1.2.4</pom.ver>
</properties>
<activation>
<!--默认生效的配置组-->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>dev</id>
<properties>
<pom.env>dev</pom.env>
<pom.ver>1.3.3</pom.ver>
</properties>
</profile>
<profile>
<id>pro</id>
<properties>
<pom.env>pro</pom.env>
<pom.ver>1.3.5</pom.ver>
</properties>
</profile>
</profiles>

2.application.properties配置

env=${pom.env}
ver=${pom.ver}

3.执行

执行的时候加上-P ${profile.id},使用默认的可以不加,我用的IDE自带的工具选择生效参数组,在Profiles里面选择参数组

mvn clean install -P local

4.总结

步骤如下:

  • pom.xml中添加、参数
  • EL表达式在配置文件中调用变量
  • 执行是-P 制定参数

Maven Profiles 定义不同环境的参数变量的更多相关文章

  1. Maven <Profiles>定义不同环境的参数变量

    记录一下 https://blog.csdn.net/qq245282209/article/details/52192115

  2. maven (profiles)装载不同环境所需的配置文件

    引子: maven与java的联系在今天的项目已经是不可分割的 ,但是不同的项目有各具特色的项目结构,不同的项目结构使用了不同的maven插件,想要了解一个项目的项目结构,或者自己构建一个具有成熟结构 ...

  3. 【JAVA】Maven profiles控制多环境数据源日志打包(转载)

    https://blog.csdn.net/qq_17213067/article/details/81661295

  4. Spring boot项目maven的profile多环境配置不自动替换变量的问题解决

    Spring boot项目maven的profile多环境配置不自动替换变量的问题解决   在网上找了好久,配置都很简单,可是我的程序就是不能自动替换变量,最终单独测试,发现原来是引用spring b ...

  5. maven profiles多环境配置

    maven profiles多环境配置 转载. https://blog.csdn.net/runbat/article/details/81747874 今天做了一个小项目,需要配置开发.测试.预发 ...

  6. Shell 环境变量 & 参数变量

    环境变量 $HOME 当前用户的家目录 $PATH 以冒号分隔的用来搜索命令的目录列表 $PS1 命令提示符,通常是$字符,但在bash中,可以使用一些更复杂的值.例如,字符串[\u@\h \w]$就 ...

  7. Eclipse Maven profiles 多环境配置,测试环境与开发环境分开打包

    1.将开发环境.测试环境.生产环境的配置文件分开存放,如下图: 2.在Maven中配置不同的环境打包配置文件的路径,配置如下: <profiles> <profile> < ...

  8. maven的安装及环境变量配置

    1.下载maven 2.解压至该路径 3. 新建环境变量MAVEN_HOME , 值为maven包点开路径 环境变量配置: 4. 编辑环境变量Path,追加%MAVEN_HOME%\bin\ 5.一路 ...

  9. maven工程的多环境配置方案(profile)

    前言: 写一篇水文来打发下时间吧^_^. 在应用开发中, 总会遇到开发/测试/预发布/线上环境, 其环境不同, 其具体的配置项也有所不同, 因此如何快速的切换各个环境配置, 进行打包配置, 成了一个小 ...

随机推荐

  1. vc 编译器的一些精典报错

    本篇将平时遇到的一些编译错误 , 记录于此 , 同时帖上分析

  2. Cloudify介绍

    一篇关于Cloudify的介绍,可以看一下:http://timeson.iteye.com/blog/1699730

  3. qt creator在Qt5中中文显示的问题

    当我们用Qt Creater时,经常出会出现如下问题: 处理方法如下:用记事本打开你的源代码,然后点另存为,utf-8,编码覆盖,这时中文就没问题了但是会乱码.在字符串前加个宏QStringLiter ...

  4. cell的循环利用

    方式1 // 1.先根据cell的标识去缓存池中查找可循环利用的cell UITableViewCell *cell = [tableView dequeueReusableCellWithIdent ...

  5. windows 2016 容器管理

    1. docker-compose 安装        python   2.7        pip       pip   install docker-compose        常见问题: ...

  6. c++中接口

    C++中,通过类实现面向对象的编程,而在基类中只给出纯虚函数的声明,然后在派生类中实现纯虚函数的具体定义的方式实现接口,不同派生类实现接口的方式也不尽相同,从而实现多态. 我们需要遵循一些规则: 声明 ...

  7. jeecg中service中注入jdbc的注解

    @Resource private JdbcTemplate jdbcTemplate;

  8. WPF ComboBox下拉绑定Treeview 功能的实现

    因为项目需要,接触到这个功能点,借助网络还有自己的一点摸索,实现了这个功能.相关代码如下: XAML部分的代码: <ComboBox Grid.Row=" RenderTransfor ...

  9. Spring Boot Maven 打包可执行Jar文件

    本文转载自:http://blog.csdn.net/smilecall/article/details/56288972 Maven pom.xml 必须包含 <packaging>ja ...

  10. LockSupport分析

    LockSupport是java.util.concurrent.locks包中的一个工具类,主要提供了一些在创建锁和同步类中用来阻塞其他线程的原始操作. 当有多个线程需要获取同一个资源的锁的时候,如 ...