maven: profile设置的不确定性问题

我在一个parent根pom里的有如下代码段
设置dev为默认profile

    <profiles>
        <profile>
            <id>dev</id>
            <properties>
                <profileActive>dev</profileActive>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <id>test</id>
            <properties>
                <profileActive>test</profileActive>
            </properties>
        </profile>
        <profile>
            <id>prod</id>
            <properties>
                <profileActive>prod</profileActive>
            </properties>
        </profile>
    </profiles>

    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
                <excludes>
                    <exclude>application-dev.yml</exclude>
                    <exclude>application-test.yml</exclude>
                    <exclude>application-prod.yml</exclude>
                </excludes>
            </resource>

            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
                <includes>
                    <include>application-${profileActive}.yml</include>
                </includes>
            </resource>
        </resources>

        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>

            <plugin>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.0.2</version>
                <configuration>
                    <delimiters>
                        <delimiter>@</delimiter>
                    </delimiters>
                    <useDefaultDelimiters>false</useDefaultDelimiters>
                </configuration>
            </plugin>
        </plugins>
    </build>

然后某个springboot项目引用了这个pom为parent
这个项目的resource下有application.yml application-dev.yml application-test.yml
其中application.yml里有如下:

spring:
  profiles:
    active: @profileActive@

如果我打包将这个项目传到linux服务器下运行,则正确的采用了dev这个默认profile, 日志为

2019-01-18 00:25:58.435 INFO 8956 --- [ main] c.u.i.k.p.myproject.MyApplication : The following profiles are active: dev

但是如果我在IDEA下点击调试运行
其中(图中的红色警告是应为我为了隐私,不想透露具体的项目和类名,乱写的,这里只是显示一下配置)
图片描述

没做任何配置
那么会出现

2019-01-17 16:33:38.561 INFO 12044 --- [ main] c.u.i.k.p.myproject.MyApplication : No active profile set, falling back to default profiles: default

请问这是怎么回事啊?

阅读 4.9k
1 个回答

你展开 IDEA 左侧的 Maven看板的 Profiles 看看对应的配置有没有被勾选上
clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题