一、问题即分析

项目pom文件中的profiles有3个配置:devtestproduction

默认配置的是dev,如下图:



但在本地起服务时,读取的配置始终是test里的。

二、原因

2.1 maven中的profile说明

开始并不知道原因,因为特别违反常理,pom文件里的配置不生效你敢信...后来发现其实是IDEA的锅。

对于IDEA中Maven的使用需要注意以下内容:



图片内容摘自: https://youmeek.gitbooks.io/intellij-idea-tutorial/content/maven-skill-introduce.html

注意:上面说的profile我们都理解,有多个也理解,但同时激活多个profile是什么鬼?

如果我同时激活两个,而这两个里面对于同一个属性的值配置的并不同,那么Maven或者说IDEA要如何选择?选择哪个?

一看我们的项目,果然是这个原因:同时选中了devtest的配置,但实际生效的是test,即使我们pom里面配置的默认是dev...而且,不管我们怎么改dev,配置始终不生效,因为实际使用的配置是test

2.2 为什么IDEA会同时选中devtest

因为我们这个项目是一个多模块项目,里面有3个Web,其中一个的默认配置是test,另外两个的默认配置都是 dev。可能因为这样导致同时选中了devtest

2.3 为什么之前没问题?

因为之前每个项目里的devtest配置都一样,这次上线,因为测试原因,修改了配置,将test的配置改为了预发的配置。然后本地起服务,读取了预发的配置,就出了问题。

三、解决

上图中的配置,只选中dev...果然,问题解决了。不能都不选,不然连项目都无法编译...

四、结束

【IDEA】Maven踩坑:pom文件中的默认profiles不生效+IDEA中Maven的profiles使用说明的更多相关文章

  1. SpringBoot1.x升级SpringBoot2.x踩坑之文件上传大小限制

    SpringBoot1.x升级SpringBoot2.x踩坑之文件上传大小限制 前言 LZ最近升级SpringBoo框架到2.1.6,踩了一些坑,这里介绍的是文件上传大小限制. 升级前 #文件上传配置 ...

  2. intellij中maven不能导入pom文件中指定的jar包

    pom文件配置依赖的jar包版本,可以有默认的版本,如下 <profiles> <profile> <id>default_version</id> & ...

  3. maven导出工程pom文件中依赖的jar包

    在工程的pom文件里加上下面plugin, 然后执行mvn clean package -Dmaven.test.skip=true命令,就可以lib包收集起来了 <plugin> < ...

  4. Maven入门-3.pom文件和settings文件

    1.pom.xml文件介绍2.settings.xml文件介绍 1.pom.xml文件介绍 Maven项目的核心是pom.xml,pom(Project Object Model项目对象模型) pom ...

  5. 关于maven导入工程pom文件报错问题及解决

    pom文件头报错 1.导入maven文件,经常遇到表头出错问题.报错:Failure to transfer org.apache.maven.shared:maven-filtering:pom:1 ...

  6. Maven 项目依赖 pom 文件模板

    下面是网上down的 pom 文件模板: <!-- 属性 --> <properties> <spring.version>4.2.4.RELEASE</sp ...

  7. eclipse导入maven时,pom文件的project一直报错(Failure to transfer org.apache.maven.plugins:maven-surefire-plugin:pom:2.12.)

    这里有两种解决办法. 一:右键项目->maven->update project勾选上Force Update of Snapshots/Releases然后ok就可以了. 二:如果第一种 ...

  8. 踩坑の SpringMVC文件上传

    环境准备 添加两个jar包   commons-fileupload-1.2.2.jar   commons-io-2.4.jar 配置要求 在springmvc.xml中配置multipart类型解 ...

  9. maven 在pom文件下配置默认的jdk版本

    在pom.xml中加入这段代码就可以了 <!-- 设置默认的jdk --> <profiles> <profile> <id>jdk1.7</id ...

随机推荐

  1. unity3d协同不同设备的代码

    unity3d的脚本代码中,Update()函数每一帧都会运行一次. 假设有这两台设备:一台超级四路泰坦计算机,一台旧手机,它们一起运行一个赛跑游戏,Update()函数每一帧运行一次,游戏中的小人就 ...

  2. redis conf 详解

    2.8配置 # Redis configuration file example # Note on units: when memory size is needed, it is possible ...

  3. 点滴积累【C#】---对上传文件的路径进行加密,以免将路径暴露在浏览器上,避免一些安全隐患!

    效果: 描述: 本事例是为解决在上传或下载文件时避免将路径暴露在外.在上传时将路径进行加密保存到DataTable或数据库中,在下载是再读取DataTable中加密数据进行解密下载. 代码: [前台代 ...

  4. Linux 连续运行多条命令

    每条命令使用";"隔开.则不管前边的命令运行成功与否都会继续运行下一条命令 这里,有益将第二条命令中的echo多写了一个o.命令运行出错,但并不影响兴许命令的运行 能够这么想,假设 ...

  5. debian下运行netstat失败

    如果提示:bash: netstat: command not found 说明没有安装netstat工具,而该工具在 net-tools 工具包内. apt-get install net-tool ...

  6. 在ubuntu上使用Virtual-Box安装Mininet

    使用Virtual-Box安装Mininet看上去简单,但其中也暗藏许多坑.我自己装了多次Mininet,但每次都有缺陷: mininet访问不了网络 用宿主机访问不了mininet虚拟机 最后,终于 ...

  7. 227. Mock Hanoi Tower by Stacks【easy】

    In the classic problem of Towers of Hanoi, you have 3 towers and N disks of different sizes which ca ...

  8. python学习之os.walk()

    os.walk(top,topdown = True,onerror = None,followlinks = False) 参数 top -- 根目录下的每一个文件夹(包含它自己), 产生3-元组 ...

  9. unity shader(二)

  10. python socket 多人聊天室

    参考来源(其实我从上面复制了一点):Python 的 Socket 编程教程  http://www.oschina.net/question/12_76126Python线程指南 http://ww ...