gpt4 book ai didi

java - Gradle使用不同的属性文件构建多个.war文件

转载 作者:行者123 更新时间:2023-12-01 11:12:27 25 4
gpt4 key购买 nike

我们正在使用 Spring Boot 和相关依赖项从头开始开发一个新的 Web 应用程序,并使用 Gradle 构建。

我们的项目有近 5 个测试阶段,每个阶段在不同的服务器上执行,因此最终每台服务器上的配置略有不同。

上面的场景是很常见的情况,通常是我在早期项目中遵循的做法,将“Properties”文件直接保存在服务器的类路径下,以便可以将同一个 .war 文件部署在多个服务器上并且仍然根据服务器/环境有不同的配置。

现在,上述设置的明显缺点是 - 这样的设置无法通过某些版本 Controller 轻松地与其他开发人员共享。此外,我无法使用 Gradle 中“进程资源”任务的强大功能在构建过程中引入一些动态属性。

现在,如果我在项目设置中提取 .properties 文件,那么我可以轻松地对其进行版本控制,共享变得更容易,并且我还可以通过 Gradle 引入动态属性。缺点是更新 .properties 文件后我可能需要准备多个 .war 文件。

我有两个问题?

  1. 您对以上两种方式有何看法?考虑到这种情况,您会选择什么以及为什么(处理这种情况的任何其他方法)?
  2. 在构建多个 .war 文件的第二种情况下,如何重新运行 war 任务以生成新的输出文件?

谢谢!

最佳答案

你应该为所有环境构建一场 war 。设置每个环境的操作系统环境变量(例如 spring.profile=dev、spring.profile=prod)。

根据该环境变量读取正确的属性文件(spring 将为您执行此操作)。例如 application-dev.properties、application-prod.properties

在使用时将生产数据库连接密码存储在环境变量中。

参见

http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

关于java - Gradle使用不同的属性文件构建多个.war文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32194961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com