在maven构建中传递Spring配置文件

时间:2016-03-24 10:14:54

标签: java maven spring-boot

我通过传递弹簧活动配置文件来运行spring boot app,如下所示:

spring-boot:run -Dspring.profiles.active=dev

但是如何在使用maven创建包时传递spring.profiles.active。以下是maven命令:

mvn clean install

4 个答案:

答案 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