当前位置: 首页 > 知识库问答 >
问题:

Spring引导和连续输送简单管道

蒋文光
2023-03-14

我找不到任何例子或文章,当我们正在使用Spring Boot+Jenkins时,连续交付管道是怎样看起来的。

在Java EE中,我通常是这样做的:

  • 将更改推送到存储库
  • Jenkins每5分钟检查一次更改
  • 如果发生了更改,Jenkins会取出源代码并运行maven Build
  • 使用wildfly maven插件在服务器上运行重新部署

通常,我想知道当我使用Spring Boot时,在最后一点上该做些什么。应用程序被打包到单个JAR中,并在单独的进程中运行,所以在Spring Boot中,实际上不存在像重新部署这样的事情。我必须先写一些脚本来杀死旧进程然后再运行新工件吗?或者有类似“spring boot CLI”的东西,在那里我可以管理所有正在运行的spring boot应用程序?

共有1个答案

赫连开畅
2023-03-14

您需要终止旧进程并将新进程作为服务运行。这里很好地解释了Spring Boot application as a Service。

我们使用的jenkins有很好的ssh插件:https://wiki.jenkins-ci.org/display/jenkins/publish+over+ssh+plugin

  1. 将jar复制到服务器
  2. 停止旧服务
  3. 运行新服务

编辑:为运行Spring boot as a service添加了Spring boot引用-http://docs.Spring.io/spring-boot/docs/current/reference/html/deployment-install.html@vaelyr

 类似资料:
  • 应该可以通过依次运行 和 来连续构建 Spring Boot 应用程序(即热重载)。 我正在尝试修改gradle构建文件中的引导运行任务,以便它以连续模式调用构建任务,但我似乎无法向其添加参数。 我如何才能让构建持续运行?

  • 是否可以根据我使用的Spring Boot配置文件加载不同的log4j配置。 假设我在application.properties中 在application-live.properties中,我为所有3个都有不同的值

  • 我有一个Spring Boot应用程序,它接收JSON请求并将其推送到IBM MQ JMS队列中。可能有n个JSON请求将被推送到队列。我的目标是处理队列中的每个请求。如何侦听队列并使用spring boot逐个处理消息?

  • 我正在用Spring Boot编写一个简单的微服务。该服务将充当另一个资源的代理,这些资源具有硬并发连接限制,并且请求需要一段时间来处理。 null 这看起来真的很有趣,但还没有合并到Spring Boot1.5,https://github.com/spring-projects/spring-boot/pull/6571 我现在用的是不是运气不好?当然,我可以实现一个过滤器,但我宁愿在更早的级

  • 我想在提取一些数据时使用外部工具(循环通过行)。为此,我首先使用了Runtime.getRuntime()。exec()执行它。但后来我的提取变得很慢。所以我在寻找一种可能性,在循环的每个实例中,使用shell的同一个实例来执行外部工具。 我发现,我应该使用ProcessBuilder。但是现在还不行。 这是我测试执行的代码(已经从论坛中的答案输入): 我想在另一个类中调用它,例如 Testcla

  • 问题内容: 对于需要刷新以设置的时间间隔呈现给用户的部分数据的简单Web应用程序,仅使用setInterval()从端点获取JSON而不使用适当的轮询框架是否有任何弊端? 出于示例的原因,可以说我每5秒刷新一次处理作业的状态。 问题答案: 根据我的评论: 我将使用 [docs] 并始终在收到上一个响应时调用它。这样,在请求/响应花费的时间超过间隔时间的情况下,可以避免可能的拥塞或函数堆栈或任何您想