Tomcat 配置Hudson以部署构建

Tomcat 配置Hudson以部署构建,tomcat,continuous-integration,hudson,continuous-deployment,Tomcat,Continuous Integration,Hudson,Continuous Deployment,我正在尝试配置Hudson,以便能够自动将构建(一个.war文件)部署到Tomcat。然后,有人将使用新部署的构建来测试应用程序 我已经尝试使用Deploy插件来自动部署.war文件,这很有效。但是,构建.war文件的作业将在每次scm更改后(无论何时提交代码)运行。使用Deploy插件,每次构建时都会将.war文件部署到Tomcat。由于频繁提交代码,这意味着web应用程序也将频繁重启,这将中断测试过程 我很欣赏Hudson运行我的单元测试并定期进行构建,所以我不想改变这个工作的触发器 我正在

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

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

我很欣赏Hudson运行我的单元测试并定期进行构建,所以我不想改变这个工作的触发器


我正在寻找一种方式,我可以手动决定从哈德逊内部部署。我尝试创建一个单独的作业,从第一个作业开始部署.war,但没有成功。有人有过这样的经验吗?

每个项目我都有几份哈德逊的工作:

  • 仅构建项目并运行测试的主要作业。如果成功,将启动以下作业:
  • 代码度量作业(PMD、FindBugs、Cobertura、CheckStyle以及JavaDoc生成)和
  • 一个部署作业,它使用
    mvn包-DskipTests
    构建项目,并在tomcat上部署war
  • 我发现分离这些使事情变得更容易,只有第一个作业侦听SCM更改

    但是,另一种方法是让第三个作业也侦听SCM(但间隔较长,可能是一个小时)。

    如何获取工件 请参阅上的“如何回滚或重新部署以前的版本”一节。它描述了基本思想。它使用将构件从构建作业复制到当前作业(部署作业)。从这里开始,您将执行与构建步骤相同的操作

    如何触发部署 启动部署后无法触发生成作业,因此第一个生成将运行,而不是部署作业。因此,有几个选择:

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

    他不想知道创造什么样的工作是好的。他的问题是,他不知道如何将工件从构建作业转移到部署作业,这个解决方案基本上会创建相同的构建两次。我曾考虑过这个解决方案,但我认为必须有更好的办法。彼得的解决方案对我有用。谢谢。虽然我花了一段时间才找到要复制的工件的正确路径,但我找到了它,现在它工作了。