tomcat - 配置 Hudson 以部署构建

标签 tomcat continuous-integration hudson continuous-deployment

我正在尝试配置 Hudson,以便能够自动将构建(一个 .war 文件)部署到 Tomcat。新部署的构建随后将被某人用来测试应用程序。

我试过使用 Deploy Plugin 来自动部署 .war 文件,这很有效。但是,构建 .war 文件的作业将在每次 scm 更改后运行(无论何时提交代码)。使用部署插件,每次构建时都会将 .war 文件部署到 Tomcat。因为代码被频繁提交,这意味着 Web 应用程序也将被频繁重启,这将中断测试过程。

我感谢 Hudson 运行我的单元测试并定期构建,所以我不想更改这项工作的触发器。

我正在寻找一种可以手动决定从 Hudson 内部部署的方法。我尝试创建一个单独的作业来部署第一个作业中的 .war,但这没有用。有没有人有过这样的设置经验?

最佳答案

如何获得神器

查看 Deploy Plugin Page 上的“如何回滚或重新部署以前的构建”部分.它描述了基本思想。它使用 Copy Artifact Plugin将工件从构建作业复制到您当前的作业(部署作业)。从那里您可以执行与构建步骤中相同的操作。

如何触发部署

启动部署后无法触发构建作业,因此先运行构建,然后再运行部署作业。所以有几个选项:

  • 手动触发构建。启动部署的用户需要选择构建作业的特定运行。
  • 计划部署 这可能是夜间任务的一部分。作业会在特定时间间隔触发(例如每晚或每个周末)。由于它是自动化的,因此部署作业应该选择上次成功的构建(那时您不需要参数化作业)。您没有机会传递运行编号。
  • 每次构建成功完成时都会触发部署作业(不符合您的要求,但已列出以完成列表)
  • 一些其他(深奥的)触发器。这可能有很多不同的想法,例如通过调用构建 URL 远程触发。调用可以来自您的票务系统、测试实验室管理系统或您喜欢的任何其他系统之一。您还可以通过源代码控制系统中的特定更改来触发部署,例如更改版本号(例如,在提交消息中用关键字标记)。此触发器可以在 Hudson 内部或外部实现。还有其他可用的触发器。这包括但不限于 html 页面更改、文件系统受监视部分的更改、IM 消息、电子邮件。前三个由 Hudson 插件实现。看看插件列表,知道什么是可用的 或者在这两种情况下,您都需要确保构建作业存档部署所需的所有工件。

关于tomcat - 配置 Hudson 以部署构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4615489/

相关文章:

java - REST 服务返回 HTTP 204 (Tomcat/Linux)

java - Tomcat 是否实现或运行 Java Servlet 和 JavaServer Pages (JSP) 规范?

java - 将 Spock 与 Jenkins、Sonar 集成的最佳实践

java - Junit 内联比较器初始化错误

java - 无法找到 XML 模式命名空间的 Spring NamespaceHandler

spring - 如何在混合的 Apache 和 Tomcat 环境中保持 session

tfs - 无法通过 Jenkins 插件登录到 TFS

postgresql - Sonarqube 无法连接到 PostgreSQL

java.io.IOException : Cannot run program "ant" 异常

java - 错误 - trustAnchors 参数必须非空