zoukankan      html  css  js  c++  java
  • 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中的版本。

  • 相关阅读:
    python中字典dict pop方法
    Markdown 学习资源
    Windows bat 设置代理
    Warning: Permanently added '...' (RSA) to the list of known hosts --Windows下git bash 警告处理
    subilme增加对markdown的高亮支持
    ubuntu笔记1
    Sublime Python 插件配置合集
    Excel VBA 快捷键 代码
    贩卖守望先锋账号
    如何用VS2017用C++语言写Hello world 程序?
  • 原文地址:https://www.cnblogs.com/paxing/p/10701240.html
Copyright © 2011-2022 走看看