使用Maven配置构建特定于Spring Boot配置文件的属性

时间:2018-08-17 12:54:33

标签: java maven spring-boot war spring-profiles

如何使用maven为Spring Boot应用程序构建特定于环境的war文件。我已经在src / main / resource /文件夹中创建了3个配置文件配置文件。

  1. application.prod.properties
  2. application.dev.properties
  3. application.test.properties

在将项目作为Spring Boot应用程序执行时,我可以通过在VM参数选项卡中使用值“ -Dspring.profiles.active = dev”指定所需的配置文件类型来运行应用程序。

在这里,作为Spring Boot应用程序运行时,我可以指定所需的配置文件。以同样的方式,当我需要使用不同的配置文件进行MAVEN安装时。是否可以通过任何方式在Maven安装目标的“运行配置”中将配置文件指定为VM参数列表的一部分。

我有一定的限制,不要触摸现有的Java代码。

我正在使用STS IDE,Spring Boot 1.5.2.RELEASE版本,Java 1.8和oracle db。

以同样的方式也帮助我在Jenkins中配置配置文件。

我的配置文件配置有两个要求。

  1. 使用VM args在STS IDE中作为Spring Boot应用程序运行该应用程序。 使用以下VM ARGS PLAYING
  

Blockquote

(在开发环境中本地启动SpringBootApp时,这里出现异常)。


申请无法开始


说明:

无法确定数据库类型为NONE的嵌入式数据库驱动程序类

操作:

如果要嵌入式数据库,请在类路径上放置一个受支持的数据库。如果您要从特定配置文件中加载数据库设置,则可能需要激活它(配置文件“ dev”当前处于活动状态)。

  

Blockquote

  1. 如何通过动态指定配置文件以生成war文件来使用maven安装执行相同的操作。我找不到解决方案。

2 个答案:

答案 0 :(得分:4)

在主application.properties文件中,将spring.profiles.active设置为@myActiveProfile@(或您想要的任何名称)

spring.profiles.active=@myActiveProfile@

将application.properties文件添加为已过滤的资源,以便在构建阶段替换占位符myActiveProfile

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

将个人资料部分添加到pom.xml

<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <myActiveProfile>dev</myActiveProfile>
        </properties>
    </profile>
    <profile>
        <id>prod</id>
        <properties>
            <myActiveProfile>prod</myActiveProfile>
        </properties>
    </profile>
</profiles>

基本上,您可以在执行特定目标时指定Maven配置文件。例如mvn install -P profileName。在配置文件中,您可以创建一个属性,该属性可以在运行mvn install -DmyActiveProfile=foo

之类的目标时从命令行传递

希望这会有所帮助。

有用的链接

How to set spring active profiles with maven profiles https://maven.apache.org/guides/introduction/introduction-to-profiles.html

答案 1 :(得分:0)

在这里,首先,我建议将属性文件重命名为application-prod.properties,application-dev.properties和application-test.properties。

第二,maven安装目标是编译和构建项目。

如果您还想运行应用程序,则在安装时建议使用spring-boot-maven-plugin。

您可以使用如下所示的maven命令

mvn clean install spring-boot:run

以下一些链接供您参考

https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-running-your-application.html

https://docs.spring.io/spring-boot/docs/current/maven-plugin/run-mojo.html