我想设置一个持续集成环境,在提交源代码之后,它会触发一个构建过程,该过程检查代码,运行测试,构建war文件并将其部署到jetty服务器,以便用户/测试人员可以在浏览器上访问该应用程序。
这可能吗?
使用maven和jetty(我不愿意改变这一点。我将jetty用于开发和生产)。对于CI,我正在探索Jenkins,但我对其他开源解决方案持开放态度。
如果可能,我该如何设置环境。
答案 0 :(得分:5)
我发现了一个名为cargo的maven插件。它拥有我需要的一切。我将它添加到我的pom中,以便我可以使用mvn货物部署和取消部署:deploy / mvn cargo:undeploy。我创建了一个新的jenkins作业,并添加了取消部署,包部署maven目标作为构建步骤。一切都很完美。
答案 1 :(得分:3)
这绝对有可能。在之前的项目中,构建服务器(teamcity)将war复制到构建服务器和应用程序服务器之间的共享nfs位置,并运行连接到应用程序服务器并重新启动jetty的小shell脚本。
我们在maven中使用ant来管理部署,我记得我们使用了副本和sshexec任务。
我确信还有很多其他解决方案,但那个解决方案对我们有用。
答案 2 :(得分:1)
我回顾了很多像这样的帖子,但我想要一些独立的东西。看看这里,这是哈德森/詹金斯的自给自足的跑步者。您只需要“战争”,即使不需要手动码头安装。 Deploy war on jetty in Jenkins or Hudson job