idea 【Maven Projects # Profiles】问题记录

今天启动接一个新项目,而后项目启动后发现启动的环境和预想的不一致,查看 pom 文件确认本身是 dev 无误以后,可是启动的就是 test 环境。html

问题

发现了启动环境不对不对以后,本身试了一种解决办法,就是在添加运行命令 -Dspring.profiles.active 指定须要运行的环境。可是没有弄清楚缘由仍是以为难受。 因而开始排查问题,发现了 Maven Projects 的 Tool Window 下有一个历来没有注意到的选项:Profiles,想确定是pom 文件中对应的配置。spring

解决方法

发现有些配置是 项目 pom 中配置的,有些是 maven settings.xml 文件中的配置。因而开始探索,发现有些勾选还会变成灰色,有些是亮色,不清楚究竟是什么意思呢。各类尝试以后,发现只有仅选择了 dev 以后,启动才会成功。maven

问题虽然解决了,可是不清楚为何选择多个就不行呢。ide

因而就去网上搜索,发现都没有关于这个 tool bar 的解释,只能去看寻找 官方 HELP了。idea

官方解释

Working with Maven profiles 这个连接解释了这个 tool bar 的做用,固然还有一些关于 idea 如何使用的指导,以前都没有看过,仍是有不少帮助了,建议不清楚的能够去看看。这里只简单介绍 Maven Projects | Profiles 的说明就只说这个吧。spa

  • 显示范围 显示范围 简单解释一下就是,这里展现3个范围内的Profilesxml

    • maven 配置文件1,仅使用此文件的项目有效,在 %\USER_HOME%/.m2/settings.xml
    • 全局 maven 配置,${maven.home}/conf/settings.xml.
    • 本项目中 pom 文件中配置的环境
  • 激活环境配置 官方文档中显示当咱们导入文件的时候,会有选择环境的提示,不知道是否是没有注意仍是版本的问题,没有看到。总之在这个 tool bar 中能够经过两种方式去指定 想要激活的环境htm

    • 一、Execute Maven goal :点击带有m的图表会出现选项,能够在那里 经过 -P profileName 指定激活环境
    • 二、经过选择profiles list中的 复选框选择

第一种方式是运行maven命令时指定环境的方式,同时能够验证我在上面说的,经过启动时手动添加命令的方式也是能够指定配置文件的。第二种方式比较便捷,只是不了解这个选项的话是不清楚意思的。继承

继续阅读发现,灰显的勾选是 默认 激活的环境。可是它会被手动激活的方式覆盖。ci

发现的问题

另外文档中国还有两个问题没有说明,即:

  • 一、多个环境被激活的状况下,使用哪个环境呢?
  • 二、如何恢复默认的配置状况,目前好像没有找到方法。

第一个问题在实践和网友的方案中得知,是使用最后一个勾选的环境!!!

另外,再记录一个提醒: 在多模块项目中,parent 的 dependencies 下的全部依赖会被子项目继承,若是不想这么作,能够使用 <dependencyManagement>标签,他能够被子项目引用,可是不会默认加载,只有显示的引用才会加载此依赖,并且默认不添加版本会继承parent的版本,可是也能够手动覆盖parent中的版本。

相关文章
相关标签/搜索