2012-07-23 67 views
2

我正在为我的应用程序编写构建脚本,并且想知道部署/发布到测试/产品环境的最佳实践是什么。在测试和产品环境中使用Maven和Jenkins部署到tomcat

目前我有什么写得

  1. 使用ssh停止Tomcat服务器。
  2. 构建使用Maven
  3. 战争使用ssh
  4. 传输使用ssh的web应用在Tomcat
  5. 启动服务器

我知道DIR内置文件从Tomcat的webapps目录中删除战其不是部署应用程序的最佳方式,并且希望得到您的反馈。我理想想要做的是

  1. 执行prod env的maven版本。如果可能,请修改版本号。
  2. 标记代码。
  3. 将发布的war上传到包含所有战争及其历史记录的S3文件夹。
  4. 在服务器/ Jenkins上编写一个脚本,它将从S3下载文件(如果版本最新提供,版本号)并部署到tomcat。

我很困惑这个第4步应该在Jenkins还是在服务器上。我使用EC2实例托管Web应用程序,因此我的图像需要具有该脚本。

回答

5

第一件事就是混合构建和部署。我会建议通过Maven进行构建。部署是一个不同的故事。

I would suggest to change your build in that way to produce with a single run in Jenkins or on command line artifacts which can be deployed in test and production.

我指的是制造假象使通过的Maven插件发布的释放,因为你正在提供的文物,以测试和/或督促其必须是可重复的。

这些是在你的资源库管理器(Artifactory,Archiva,Nexus)中有它们的产品,下一步是将它们部署到适当的区域,如测试或生产。这可以通过Maven通过maven cargo plugintomcat plugin等或其他插件来实现。 但我会建议通过不同的东西,如木偶,厨师等,或可能是由家庭brewn scipts /工具。脚本可以通过Jenkins运行,没有问题(应该不是问题)。部署本身不应该是应该单独制作的建筑的一部分。如果你正在编写你自己的工具,你可以看看Aether library来更简单地访问Maven仓库。

5

在组织内,你混合构建和部署,复制,...

Maven是一种工具当詹金斯是一个整合工具时,建立档案库。

你应该:

  • 保持编辑和整合
  • 使用的工具,因为他们已经设计了什么之间有明确的交界。

HIH M.

相关问题