【发布时间】:2026-01-29 00:15:01
【问题描述】:
我目前正在构建一个 java web 应用程序(使用 netbeans)。 我使用 Jenkins 使用以下管道(针对 Jenkins)创建发布版本:
构建 -> 测试 -> 部署(到远程测试网络服务器)
构建和测试都可以,但我对部署作业有疑问。 部署作业目前正在获取我之前生成的 .war 文件,并将其简单地传输到远程 Web 服务器(使用“部署到容器”插件)。 但我想先更改我的 Web 应用程序的数据库参数! (为了使用另一个远程测试数据库)。 我很乐意使用 shell 命令修改 java 文件,但我不能,因为我的 .war 仅由已编译的 .class java 组成。
那么,在将 .war 文件部署到远程 Web 服务器之前,如何更改我的一些 Web 应用程序 Java 代码(用于数据库凭据)?
【问题讨论】:
-
你不应该把配置数据放在代码中。将凭证移动到属性文件,并读取该文件以获取凭证。然后可以在不同环境中部署后编辑属性文件。这也避免了其他安全问题,例如证书在您的 SCS 中可见,以及开发人员需要知道生产密码。但这只是解决您当前问题的第一步,并且有多种解决方案。有关更多想法,请参阅How should an application store its credentials。
-
虽然您已经非常具体地在 Java 方面提出了您的问题,但由于更大的问题是如何将应用程序代码部署到不同的环境,我不确定它是否真的属于 SO。您可以尝试使用Information Security 站点。你的问题也很吸引人的意见,这可能会在此处脱离主题。
标签: maven tomcat jenkins jakarta-ee netbeans