问题复现

我们在项目的pom.xml文件一般会配置多个profile 标签。

<profiles>标签一般写在pom.xml的<project>标签下

<!--分别设置开发,测试,生产环境-->
    <profiles>
        <!-- 开发环境 -->
        <profile>
            <id>dev</id> <!-- 在IDEA配置文件看到名字 -->
            <activation>
                <activeByDefault>false</activeByDefault> <!-- 是否默认启用,false -->
            </activation>
            <properties>
                <environment>dev</environment>
                <!-- 给项目添加环境参数,一般用于application.properties 填入 spring.active.profile = @environment@ -->
            </properties>
        </profile>
        <!-- 测试环境 -->
        <profile>
            <id>test</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <environment>test</environment>
            </properties>
        </profile>
        ... 此处省略其他环境
    </profiles>

在IDEA看到的配置文件如下:

解决方案

当您在使用 Maven 命令时包含了 --no-plugin-registry 选项时,它告诉 Maven 不要从插件注册表中加载插件信息。

插件注册表是 Maven 用来管理插件的机制,它允许 Maven 自动从中央存储库或其他远程存储库中下载插件。然而,有时候您可能希望禁用这种自动插件下载的行为,而是希望 Maven 仅使用本地已安装的插件。这时就可以使用 --no-plugin-registry选项来达到这个目的。

IDEA设置,勾选:使用插件注册表

勾选后,重新加载所有Mavne项目

多选配置文件

当您在IntelliJ IDEA中勾选了多个Maven配置文件时,这些配置文件将会合并,并且最终生效的配置将包括所有被勾选的配置文件的设置。

Maven配置文件的合并规则如下:

  • 如果两个配置文件中有相同的设置,最后勾选的配置文件中的设置将覆盖之前的设置。
  • 对于列表类型的设置(比如 <properties> 中的属性),将会合并两个配置文件的值。
  • 对于其他类型的设置,最后勾选的配置文件中的设置将覆盖之前的设置。

因此,当您同时勾选了两个Maven配置文件时,最终生效的配置将是这两个配置文件的合并结果。

特殊说明:
上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!转载记得标注原文链接:www.zanglikun.com
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取全部资料 ❤