包含ideaprofile的词条
本篇文章给大家谈谈ideaprofile,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、如何在idea,maven projects中,选择profiles为dev
- 2、idea设置activeprofile
- 3、idea配置多环境启动,dev、test、prod
- 4、mac下idea设置spring.profiles.active问题
如何在idea,maven projects中,选择profiles为dev
配置maven环境变量
M2_HOME:D:\workspace\maven\apache-maven-3.0.5
Path:;%M2_HOME%/bin;
检查是否成功,打开CMD:
Mvn -v
mvn install 会将项目生成的构件安装到本地Maven仓库薯早橘
mvn deploy 用来将项目生成的构件分发到远程Maven仓库
D:\mvn archetype:generate:在D:数团盘构建maven标准项目睁盯目录结构
idea设置activeprofile
profile能让你为一个特殊的环境自定义一个特殊的构建;profile使得不同环境间构建的可移植性成为可能。Maven中的profile是一组可选的配置,可以用来设置或者覆盖配置默认值。有了profile,你就可以为不同的环境定制构建。profile可以在pom.xml中配置,并给定一个id。然后你就可以在运行Maven的时候使用的命令行标记告诉Maven运行特定profile中的目标。
profile可以让我们定义一系列的配置信息,然后指定其激活条件。这样我们就可以定义多个者旦碧profile,然后每个profile对应不同的激活条件和配置信息,从而达到不同环境使用不同配置信息的效果。比如说,我们可以通过profile定义在jdk1.5以上使用一套配置信息,在jdk1.5以迟让下使用另外一套配置信息;或者有时候我们可以通过操作系统的不同来使用不同的配置信息,比如windows下首举是一套信息,linux下又是另外一套信息,等等。
idea配置多环境启动,dev、test、prod
应用场景:实际开发过程中,通常包含研发好氏测试正式环境,为了对各环境在实际使用中隔离,maven配置支持对各环境区分启动
使用例子
一、pom添加以下内容
在pom文件project标签下添加如下内容
application-dev.yml增加如下配置, application-prod.yml active则为prod
对上面内容解析:首先添加profiles,设置启动或打包时的环境类型,设置后右侧会出现profile下面的胡袜颤内容,如下图
build下设置项目打包时文件名,设置包含或不包含的配置文件
二、分别以dev和prod启动项目
设置dev启动方式如下图,启动后访问Controller,输出了dev配置文件的内容
设置prod启动方式如下图,启动后访问Controller,输出了prod配置文件的内容
注意:一次只能选一个环境,不然默认是第一次选定的环境
三、以jar启动
配置maven打包,输入如下内容
打开jar包,查看只有application-dev.yml和application.yml,说明命令生效了
注意:也可以点击右侧package打包,profiles选择对应环境裤败即可
可以看到打的包自带dev后缀
启动项目,命令如下
访问controller,打出日志
mac下idea设置spring.profiles.active问题
在springboot项目中,通过idea在配置spring.profiles.active
(1)在windows下点击idea的启动,可以通过System.getProperty("spring.profiles.active")获取到dev值
(2)在mac下点击idea的樱亏启动,同样的配置,但通过System.getProperty("spring.profiles.active")时获取到的值是null;
对比:
(1)在windows启动时,控制台输出:
参数设置被直接以-Dspring.profiles.active=dev追加到了 java命令之后,是以虚拟机参数进行设置
(2)在mac启动时,控制台输出:
参数设置被直接以--spring.profiles.active=dev追加到了 启动类命脊灶神令之后
在命令运行时,连续两个减号 --就是对application.properties中属性值进行赋值的标志。
那么在mac下可以通过设置VM options来达到windows相同的效果
这时,命令窗会出现:
但是这样的话就会出现多个spring.profiles.active(-Dspring.profiles.active=dev和最末尾--spring.profiles.active=dev);那么两个值最终取的是哪个呢? 按照springboot配置加载优先级来看,最终程序中使用优先级更高的--spring.profiles.active;
需要注意:-Dspring.profiles.active=dev是将值设置到了虚拟机中,通过System.getProperty("spring.profiles.active")可以获取到dev;但是使用--spring.profiles.active=dev使用System.getProperty("spring.profiles.active")是获取不到的。
Spring Boot 所提供的配置优先级顺序比较复杂。按照优先级从高到低的顺序,具体的列表如下:
1.命令行参数。
2.通过 System.getProperties() 获取的 Java 系统参数。
3.操作系统环境变量。
4.从 java:comp/env 得到的 JNDI 属性。
5.通过 RandomValuePropertySource 生成的“random.*”属性。
6.应用 Jar 文件之外的属性文件。(通过spring.config.location参数)
7.应用 Jar 文件内部的属性文件。
8.在辩配应用配置 Java 类(包含“@Configuration”注解的 Java 类)中通过“@PropertySource”注解声明的属性文件。
9.通过“SpringApplication.setDefaultProperties”声明的默认属性
[img]关于ideaprofile和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。