我通过传递弹簧活动配置文件来运行spring boot app,如下所示:
spring-boot:run -Dspring.profiles.active=dev
但是如何在使用maven创建包时传递spring.profiles.active。以下是maven命令:
mvn clean install
答案 0 :(得分:2)
Maven是一个构建时工具,使其修改构建工件的最终运行时行为的唯一方法是使用其(构建时)配置文件。这不能与Spring的运行时配置文件混淆,后者是指示Spring容器以特定方式引导应用程序的参数。
换句话说,spring.profiles.active
参数不会被maven“烘焙”到war文件中,你仍然需要在启动应用程序时传递它,无论是通过命令行参数还是配置文件或servlet容器提供的任何机制。
答案 1 :(得分:0)
如果有人遇到相同的情况,您可以使用spring boot和maven分两步实现: 首先在spring属性或yaml文件中,将spring.profiles.active及其值添加为占位符:
spring.profiles.active=@active.profile@
第二,用maven传递值:
mvn clean install -Dactive.profile=dev
打包jar / war时,该值将设置为dev。
您还可以利用Maven配置文件:
<profiles>
<profile>
<id>dev</id>
<properties>
<active.profile>dev</active.profile>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<active.profile>test</active.profile>
</properties>
</profile>
</profiles>
然后运行:
mvn clean install -Pdev
答案 2 :(得分:0)
对于软件包,您可以将install替换为软件包
mvn全新安装-P dev
答案 3 :(得分:-1)
您可以使用环境变量。
export SPRING_PROFILES_ACTIVE=some,test,profiles
mvn spring-boot:run