idea 【Maven Projects # Profiles】问题记录
今天启动接一个新项目,然后项目启动后发现启动的环境和预想的不一致,查看 pom 文件确认自己是 dev 无误之后,但是启动的就是 test 环境。
问题
发现了启动环境不对不对之后,自己试了一种解决办法,就是在添加运行命令 -Dspring.profiles.active 指定需要运行的环境。但是没有弄清楚原因还是觉得难受。
于是开始排查问题,发现了 Maven Projects 的 Tool Window 下有一个从来没有注意到的选项:Profiles,想肯定是pom 文件中对应的配置。
解决方法
发现有些配置是 项目 pom 中配置的,有些是 maven settings.xml 文件中的配置。于是开始探索,发现有些勾选还会变成灰色,有些是亮色,不清楚到底是什么意思呢。各种尝试之后,发现只有仅选择了 dev 之后,启动才会成功。
问题虽然解决了,但是不清楚为什么选择多个就不行呢。
于是就去网上搜索,发现都没有关于这个 tool bar 的解释,只能去看寻找 官方 HELP了。
官方解释
Working with Maven profiles
这个链接解释了这个 tool bar 的作用,当然还有一些关于 idea 如何使用的指导,之前都没有看过,还是有很多帮助了,建议不清楚的可以去看看。这里只简单介绍 Maven Projects | Profiles 的说明就只说这个吧。
显示范围

简单解释一下就是,这里展示3个范围内的Profiles- maven 配置文件1,仅使用此文件的项目有效,在 %\USER_HOME%/.m2/settings.xml
- 全局 maven 配置,${maven.home}/conf/settings.xml.
- 本项目中 pom 文件中配置的环境
激活环境配置
官方文档中显示当我们导入文件的时候,会有选择环境的提示,不知道是不是没有注意还是版本的问题,没有看到。总之在这个 tool bar 中可以通过两种方式去指定 想要激活的环境- 1、Execute Maven goal :点击带有m的图表会出现选项,可以在那里 通过 -P profileName 指定激活环境
- 2、通过选择profiles list中的 复选框选择
第一种方式是运行maven命令时指定环境的方式,同时可以验证我在上面说的,通过启动时手动添加命令的方式也是可以指定配置文件的。第二种方式比较便捷,只是不了解这个选项的话是不清楚意思的。
继续阅读发现,灰显的勾选是 默认 激活的环境。但是它会被手动激活的方式覆盖。
发现的问题
另外文档中国还有两个问题没有说明,即:
- 1、多个环境被激活的情况下,使用哪一个环境呢?
- 2、如何恢复默认的配置情况,目前好像没有找到方法。
第一个问题在实践和网友的方案中得知,是使用最后一个勾选的环境!!!
另外,再记录一个提醒:
在多模块项目中,parent 的 dependencies 下的所有依赖会被子项目继承,如果不想这么做,可以使用 标签,他可以被子项目引用,但是不会默认加载,只有显示的引用才会加载此依赖,而且默认不添加版本会继承parent的版本,但是也可以手动覆盖parent中的版本。
idea 【Maven Projects # Profiles】问题记录的更多相关文章
- Solving “Dynamic Web Module 3.0 requires Java 1.6 or newer” in Maven Projects
不一定是在Maven Projects里才有这种情况,但解决方法是一样的. 转自:http://qussay.com/2013/09/13/solving-dynamic-web-module-3-0 ...
- Idea中右边的maven projects窗口找不到了如何调出来
关于Idea中右边的maven projects窗口找不到了如何调出来? 具体的idea版本我不太清楚,我用的是2016版,其他版本应该也是一样的. 首先idea自带了maven控件,不像Eclip ...
- 关于Idea中右边的maven projects窗口找不到了如何调出来
关于Idea中右边的maven projects窗口找不到了如何调出来? 具体的idea版本我不太清楚,我用的是2016版,其他版本应该也是一样的. 首先idea自带了maven控件,不像Eclip ...
- Importing Maven projects' has encountered a problem
导入项目是报错,这个是maven问题--Importing Maven projects' has encountered a problem ---------------------------- ...
- Migrate Maven Projects to Java 11
Migrate Maven Projects to Java 11 So you want to migrate to Java 11 but your Maven project is still ...
- Intellij Idea 导入多个maven项目展示在左侧栏Maven Projects
刚刚要开始从eclipse切换成idea,据说idea功能强大,可是刚刚开始使用很多不习惯,导入第二个maven项目时之前的项目就没了,比较苦恼,下面介绍下导入多个maven项目展示在左侧栏Maven ...
- IntelliJ: Maven projects need to be imported: Import Changes Enable Auto-Import
upon creating a new maven project I get the popup box saying "Maven projects need to be importe ...
- eclipse importing maven projects 卡顿
导入一个maven工程后 一直显示 importing maven projects 9% 解决办法: 找到eclipse安装目录下的eclipse.ini 在最后加入 -vm $JAVA_HOME% ...
- 关于Error:Maven Resources Compiler: Maven project configuration required for module '项目名' isn't available. Compilation of Maven projects is supported only&
总是出现Error:Maven Resources Compiler: Maven project configuration required for module '项目名' isn't avai ...
随机推荐
- 【jvm】MinorGC和FullGC
新生代GC(Minor GC)指发生在新生代的垃圾收集动作,因为java对象大多都具备朝生夕灭的特性,所以Minor GC非常频繁,一般回收速度也比较快. 老年代GC(MajorGC/Full GC) ...
- Impala 3.3.0 源码编译安装
最新编译Apache-impala 的心酸历程.大概花了10天才整好,极度的崩溃!!!由于国内的上网环境大家都懂的,访问国外的s3.amazonaws.com一些资源库的速度极其感人,尤其 ...
- MOS管基础知识
一些关于MOS管的基础知识,很多资料来源于网络. 场效应管(FET)分类:(按材料) 1. 结型 2. 绝缘栅型(MOS) 耗尽型:在SiO2绝缘层中掺入了大量的碱金属正离子Na+或K+(制造P沟道耗 ...
- 冲刺随笔——Day_Two
这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 这个作业要求在哪里 团队作业第五次--Alpha冲刺 这个作业的目标 团队进行Alpha冲刺 作业正文 正文 其他参考文献 无 ...
- 【PSMA】Progressive Sample Mining and Representation Learning for One-Shot Re-ID
目录 主要挑战 主要的贡献和创新点 提出的方法 总体框架与算法 Vanilla pseudo label sampling (PLS) PLS with adversarial learning Tr ...
- 20200315_python3.6去除标点符号
line = "python3.6下进行去!@#$%^&*()除标点测试,:!大家好,:!&>啥都不是!@#¥%--&*(-.||" # python ...
- 第7.19节 Python中的抽象类详解:abstractmethod、abc与真实子类
第7.19节 Python中的抽象类详解:abstractmethod.abc与真实子类 一. 引言 前面相关的章节已经介绍过,Python中定义某种类型是以实现了该类型对应的协议为标准的,而不 ...
- PyQt(Python+Qt)学习随笔:QDockWidget停靠部件的setTitleBarWidget方法
setTitleBarWidget方法用于给停靠窗口设置个性化的标题栏,调用语法如下: setTitleBarWidget(QWidget widget) 说明: widget参数可以是任意一个QWi ...
- HTTP接口传输数据常用的方式
Get方式是从服务器上获取数据,在数据查询时,建议用Get方式:如商品信息接口.搜索接口等 Post方式是向服务器传送数据,做数据添加.修改或删除时,建议用Post方式,如登录注册接口等. 1.GET ...
- Python 常用方法和模块的使用(time & datetime & os &random &sys &shutil)-(六)
1 比较常用的一些方法 1.eval()方法:执行字符串表达式,并返回到字符串. 2.序列化:变量从内存中变成可存储或传输到文件或变量的过程,可以保存当时对象的状态,实现其生命周期的延长,并且需要时可 ...