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 ...
随机推荐
- vue组建通信
父组件 <template> <div> <zi :str="str" @change_fu="getzi"></zi ...
- 转载的一篇文章eclipse添加插件
eclipse没有(添加)"Dynamic Web Project"选项的方法 转载海边的第八只螃蟹 最后发布于2015-11-24 21:24:15 阅读数 40814 收藏 ...
- java集合类(新手也能掌握)
文章目录 1.集合概述 (1)集合: (2)集合分类: 2.Collection接口 3.List接口 (1)List接口简介 (2)ArrayList集合 (3)LinkedList集合 (4)It ...
- 单调栈高封装模板hia hia hia
这个单调栈应该可以了,舒服舒服 #include <bits/stdc++.h> using namespace std; #define limit (400000 + 5)//防止溢出 ...
- NOIP2020退役记
Day 0 这一次因为疫情仍然没有试机,但是允许提前打开虚拟机,减少了调试虚拟机的时间 开考时,吸取上一次 \(CSP\) 的教训,先把题面看了一遍 感觉 \(T1\) 比较可做,剩下的暂时没有思路 ...
- Python使用property函数和使用@property装饰器定义属性访问方法的异同点分析
Python使用property函数和使用@property装饰器都能定义属性的get.set及delete的访问方法,他们的相同点主要如下三点: 1.定义这些方法后,代码中对相关属性的访问实际上都会 ...
- Python中sort、sorted的cmp参数废弃之后使用__lt__支持复杂比较的方法
Python2.1以前的排序比较方法只提供一个cmp比较函数参数,没有__lt__等6个富比较方法, Python 2.1引入了富比较方法,Python3.4之后作废了cmp参数.相应地从Python ...
- 第8.28节 Python中使用__setattr__定义实例变量和实例方法
一. 引言 根据前面章节介绍的内容,我们知道实例变量.实例方法的定义可以通过以下方法进行: 在类体中直接定义实例变量.实例方法: 在实例方法中定义实例变量.实例方法: 在类体外调用方使用赋值语句赋值定 ...
- 关于EF框架EntityState的几种状态
在使用EF框架时,我们通常都是通过调用SaveChanges方法把增加/修改/删除的数据提交到数据库,但是上下文是如何知道实体对象是增加.修改还是删除呢?答案是通过EntityState的枚举值来判断 ...
- EHCACHE实现登录错误次数账号锁定
使用EHCACHE实现账号密码登录校验失败5次锁定10分钟 <?xml version="1.0" encoding="UTF-8"?> <e ...