简体   繁体   中英

Maven profiles are not activating except default profile

I am working on a spring-boot application. I have two profiles inside my POM, but when I am trying the build the project using clean install -Pdev its not reflecting the change in application.properties, it'll only reflect when I am using 'activeByDefault' tag in one of the profile.

<profiles>
<profile>
    <id>dev</id>
    <properties>
        <activatedProperties>dev</activatedProperties>
    </properties>

</profile>
<profile>
    <id>release</id>
    <activation>
        <activeByDefault>false</activeByDefault>
    </activation>
    <properties>
        <activatedProperties>release</activatedProperties>
    </properties>
</profile>

</profiles>

If I am running clean install -Pdev I am getting this in my application.properties. activatedProperties=@activatedProperties@

If I am setting the <activeByDefault>true</activeByDefault> then I'll get the value inside application.properties. activatedProperties=release.

The frustration is I am not able to use other profiles.

Add in your application.properties

spring.profiles.active=@activatedProperties@

If Maven doesn't find the directory which contains your application.properties file in runtime, you need to setup the Maven Resources Plugin to filter the directory.

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
    ...
</build>

Or just add what profile you want to active in application.properties

spring.profiles.active=dev

NOTE: The Maven profile and the Spring profile are different things.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM