远程服务器上的Spring Boot应用程序部署

时间:2017-03-31 11:22:20

标签: java spring maven

我有一个Java Spring Boot应用程序,我用Maven构建它。同 spring-boot-maven-plugin

我可以创建胖的可执行jar文件 然后我将其复制到远程服务器并运行。但有时候,

我在代码中只更改了一行或一个单词,我不得不再次进行整个构建/复制步骤。我确信我做错了,但我找不到更有效的方法(比如Rails中的capistrano)。

此时,我打算将源代码克隆到服务器,从本地推送,从远程拉取,构建和运行方法。执行此部署的正确(或优雅)方式是什么?

2 个答案:

答案 0 :(得分:2)

对于自动构建和部署过程(持续集成),您可以使用 Jenkins 。有关详细信息,请参阅此文档:https://jenkins.io/doc/

答案 1 :(得分:0)

我想说这取决于你在哪里尝试。

为受控环境执行此操作的最佳和最灵活的方法肯定是CI-CD(持续集成和持续部署)管道,它们遵循 - 构建 - 测试 - 针对源代码的每次提交部署您的代码将CI-CD用于开发环境可能太慢了,在这种环境中,您希望缩短反馈周期并加快反馈速度,以了解代码的进展情况。

但是,如果您正在谈论开发环境,我会触及另一个和弦,并问您为什么要部署到外部服务器 AT ALL 在发展中。当您使用Spring Boot(可帮助您开发自包含的应用程序)时,您可以免费嵌入Tomcat Server。这使您可以选择在开发和测试的任何地方运行代码。

一个简单的maven目标 - mvn spring-boot:run可以使代码在您喜欢的任何地方运行。

Spring-Boot中还有另一个可用的神奇库,称为Devtools,旨在支持敏捷开发人员。该库一旦进入应用程序类路径,就会执行热交换字节代码,以便在存储更改后立即将代码自动重新加载到正在运行的应用程序中(在本地运行,并嵌入Tomcat )。这是开发人员可以拥有的最酷的小工具之一。

使用Spring-Loaded(或JRebel用于非spring-boot应用程序)库也可以帮助开发人员进行热插拔字节代码,以便在保存后立即加载正在运行的应用程序中的更改。

我希望它有所帮助。