文档章节

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

自由的开源
 自由的开源
发布于 2017/04/05 00:01
字数 314
阅读 743
收藏 2

在网上找了好久,配置都很简单,可是我的程序就是不能自动替换变量,最终单独测试,发现原来是引用spring boot parent的问题

引用一位博主的话"spring-boot为了保护application.yml和application.properties,修改了默认的占位符${...}为@...@,然后发现resources插件有一个配置项"

<useDefaultDelimiters>true</useDefaultDelimiters>

 

解决办法:

 

在build里面加plugin

 

<pluginManagement>
			<plugins>
				<plugin>
					<artifactId>maven-resources-plugin</artifactId>
					<configuration>
						<encoding>utf-8</encoding>
						<useDefaultDelimiters>true</useDefaultDelimiters>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>

 

 

下面分享完整的配置,一共有两块,一块是profiles配置,一块是build

其中prifiles里面定义的 properties属性会替换.properties文件里面的变量 

例如 application.properties里面有一个mapdb.path=${mapdb.path}

会被替换成正确的

 

<build>
		<resources>
			<resource>
				<directory>src/main/resources</directory>
				<excludes>
					<exclude>dev/*</exclude>
					<exclude>prod/*</exclude>
				</excludes>
			</resource>
			<resource>
				<directory>src/main/resources/${profiles.active}</directory>
				<filtering>true</filtering>
				<includes>
					<include>**/*.properties</include>
					<include>**/*.xml</include>
				</includes>
			</resource>
			<resource>
				<directory>src/main/resources/</directory>
				<filtering>false</filtering>
				<includes>
					<include>**/*.xml</include>
				</includes>
			</resource>
		</resources>
		<pluginManagement>
			<plugins>
				<plugin>
					<artifactId>maven-resources-plugin</artifactId>
					<configuration>
						<encoding>utf-8</encoding>
						<useDefaultDelimiters>true</useDefaultDelimiters>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>

 

下面是profiles定义

 

<profiles>
		<profile>
			<id>dev</id>
			<properties>
				<mapdb.path>${basedir}/mapdb</mapdb.path>
				<profiles.active>dev</profiles.active>
			</properties>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
		</profile>

		<profile>
			<id>production</id>
			<properties>
				<profiles.active>prod</profiles.active>
			</properties>
		</profile>
	</profiles>

 

© 著作权归作者所有

共有 人打赏支持
自由的开源
粉丝 3
博文 27
码字总数 6366
作品 0
南京
高级程序员
私信 提问
spring boot + maven使用profiles进行环境隔离

Spring Profile Spring可使用Profile决定程序在不同环境下执行情况,包含配置、加载Bean、依赖等。 Spring的Profile一般项目包含:dev(开发), test(单元测试), qa(集成测试), prod(生产环境)...

流浪的猪猪
11/16
0
0
Spring-Boot 多环境配置说明

作者: 一字马胡 多环境配置是一件非常重要的事情,在日常开发过程中,我们都会有多套开发环境,比如在本地快速开发自测,然后提交到测试环境让专门的人来测试验收,测试环境验收完毕之后再上...

疼蛋之丸
07/07
0
0
加入spring-boot后导致maven的profile多环境配置失效的问题解决

搞了一上午,之前项目中使用profile多环境配置完全没问题,但新项目死活不行。最后分析发现是因为引入spring-boot导致无法替换变量,然后又继续研究原因。 spring-boot引用方式官方推荐是使用...

一路向北的兔斯基
2016/07/13
1K
1
springboot|解决:mvn多模块下filter配置替换

问题:之前的mvn多模块项目,我会在parent模块下,创建几个filter配置文件,以实现不同环境不同配置。但是在搭建springboot的mvn多模块框架时,配置文件始终替换不了。 原因:仔细看springb...

云胜886
07/31
0
0
spring boot(4)application.properties配置和使用

Spring Boot使用了一个全局的配置文件application.properties,放在src/main/resources目录下或者类路径的/config下。Sping Boot的全局配置文件的作用是对一些默认配置的配置值进行修改。接下...

刘胜球
2017/10/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

JVM问题排查也不是很难--工具使用

目录 概述 环境准备 工具介绍 远程连接方式 开启JMX 工具远程连接 参考文献 概述 线上环境中,程序越来越慢,一头雾水?遇到程序经常宕机,但找不到原因?排查问题却经常记不住命令? 那是没找到好...

java_龙
10分钟前
2
0
MySQL

1、查看数据库中所有的数据表: SHOW DATABASES; 2、连接数据库: use (数据库名); 3、显示已经打开的数据库: SELECT DATABASE(); 4、创建数据表: CREATE TABLE (数据表的名字)(第...

墨冥
18分钟前
2
0
idea 设置背景色

编辑界面背景色 控制台背景色

暗中观察
20分钟前
1
0
Win10强制更新怎么关闭 彻底禁止Windows自动更新方

Win10强制更新怎么关闭 彻底禁止Windows自动更新方法 (全文) 百事数码原创 2018-07-06 17:39电脑百事网7843 + 关注 很多Win10用户来说经常会遇到这样的烦恼,电脑系统会不时的提醒自动更新,...

阿K1225
35分钟前
2
0
不用编写程序代码,送你一个爬虫程序批量采集猫眼电影票房数据

"大数据"是一个体量特别大,数据类别特别大的数据集,并且这样的数据集无法用传统数据库工具对其内容进行抓取、管理和处理。 "大数据"首先是指数据体量(volumes)大,指代大型数据集,一般在1...

技术阿飞
50分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部