我需要创建一些方法来获取在Linux服务器上部署的本地WAR文件。直到现在我一直在做的是以下过程:
tail
确保服务器正确停止。 tail
确保服务器正确启动。 这些东西都相对简单。而且我确信有一百万种不同的方法可以做到这一点。我想听听一些选择。我的第一个想法是Bash脚本。我对脚本编写的经验很少,但认为这是一种很好的学习方法。我也有兴趣用Ruby / Python或类似这样的东西来做这件事,因为我几乎没有这些语言的经验。我认为作为一个年轻的开发人员,我绝对应该得到某种脚本语言。我可能也对某些可以为我做这些事情的软件解决方案感兴趣,虽然我认为脚本编写是一种更好的方式,为了简单和可定制性(我可能刚刚提出这个词)。
对于那些迄今为止的人提出了一些实际问题。您建议使用哪种语言来自动执行上面列出的流程?这对我来说是一个学习Bash / Ruby / Python /其他东西的好机会,还是我应该花10分钟的时间每周手工操作2-3次?我认为答案显然不是。我可以从计算机中自动执行这些操作,还是需要设置脚本以在Linux服务器中运行?电子邮件是我可以自动化的,还是我最好自己做这个部分?
在我这样做的时候,几乎肯定会出现更多的问题,所以提前做好准备。
我应该提一下,我正在使用Maven来构建WAR。所以如果我能用Maven完成所有这些,请告诉我。
答案 0 :(得分:6)
这对您的需求来说可能过于繁重,但您是否看过CruiseControl或Hudson等构建自动化工具?您可能还想查看Integrity,它更轻量级并且用Ruby编写(而不是像我提到的其他两个那样用Java编写)。这些工具可以完成您在问题中所需的所有内容以及更多方式。
修改强>
由于您希望这更像是脚本语言中的学习练习,而不是实际解决方案,因此这里有一个想法。您不必每次都手动上传WAR到服务器,而是在服务器上设置Mercurial存储库并创建一个钩子(请参阅here,here,尤其是here)每次从远程计算机(即本地工作站)推送变更集时执行Ruby(或ant或maven)脚本。您可以编写脚本,以便它执行上面列表中的所有操作项。这样,您将学习三个新东西:分布式版本控制范例,如何自定义所述工具,以及如何编写Ruby脚本以与您的操作系统进行交互(因为您的操作非常庞大)。
答案 1 :(得分:2)
我的经验中最常见的是蚂蚁,它值得学习,它非常简单,而且非常有用。
你应该明确地将其自动化,并且你应该在一步中实现它。
答案 2 :(得分:0)
您使用什么来构建WAR文件?使用相同的工具进行构建和部署有一些优势。在几个项目中,我使用Ant来构建Java项目并将其部署到服务器。