我在 pom.xml 中定义了三个配置文件
<profiles>
<profile>
<id>development</id>
<properties>
<activatedProperties>development</activatedProperties>
<env.identifier>dev</env.identifier>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>qualification</id>
<properties>
<activatedProperties>qualification</activatedProperties>
<env.identifier>klif</env.identifier>
</properties>
</profile>
<profile>
<id>production</id>
<properties>
<activatedProperties>production</activatedProperties>
<env.identifier>prod</env.identifier>
</properties>
</profile>
</profiles>
我还将我的构建节点修改为:
<build>
<finalName>myApplication</finalName>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
</plugin>
</plugins>
</build>
我创建了三个属性文件,并将此模式命名为:application-[profileId].properties。 在 application.properties 这是我定义的通用属性:
spring.profiles.active=@activatedProperties@指定 Spring Boot 使用哪个配置文件。 我还为我的日志文件定义了一个文件,如下所示:
logging.file=logs/facade_@env.identifier@.log问题是,当我启动应用程序时,即使指定配置文件,我总是会得到 env.identifier dev 的值。 如何解决这个问题?谢谢
最佳答案
更新
您可能缺少 Maven 资源插件:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<configuration>
<delimiters>
<delimiter>@</delimiter>
</delimiters>
<useDefaultDelimiters>false</useDefaultDelimiters>
</configuration>
</plugin>
...
</plugins>
然后在您的命令中您只需添加:
mvn resources:resources
关于java - 如何使用 Spring Boot 在 application.properties 中注入(inject) Maven 配置文件的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41959634/