如何使用maven为Spring Boot应用程序构建特定于环境的war文件。我已经在src / main / resource /文件夹中创建了3个配置文件配置文件。
在将项目作为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中配置配置文件。
我的配置文件配置有两个要求。
PLAYING
Blockquote
(在开发环境中本地启动SpringBootApp时,这里出现异常)。
申请无法开始
说明:
无法确定数据库类型为NONE的嵌入式数据库驱动程序类
操作:
如果要嵌入式数据库,请在类路径上放置一个受支持的数据库。如果您要从特定配置文件中加载数据库设置,则可能需要激活它(配置文件“ dev”当前处于活动状态)。
Blockquote
答案 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/maven-plugin/run-mojo.html