0

我有一个Java Maven项目,需要通过自动化CI/CD部署在EC2实例上。 我正在瞄准的过程是,GIT-> Jenkins-> Code Deploy(S3-> EC2部署)。使用jenkins和用于Java项目的AWS代码部署

Jenkins能够将我的项目构建到WAR文件中。 但是使用Code deploy Plugin,在Post-build Actions部分中选择“将应用程序部署到AWS CodeDeploy”时,它只会压缩工作区中的所有代码并推送到S3。 问题是我需要一个war文件来部署到EC2实例上的tomcat。

无论如何,我可以通过Codedeploy将由Jenkins创建的WAR发送到EC2? 或者无论如何,我可以压缩WAR文件,而不是通过Jenkins/codedeploy插件的工作区代码,然后它被推到S3?

谢谢!

回答

0

是的,你可以使用CodeDeploy将war文件部署到你的EC2实例,如果你通过jenkins在maven中构建它,但你需要创建一个appspec文件和一些脚本来启动和停止服务。基本上CodeDeploy插件会压缩war文件,脚本和appspec文件,然后推送到s3进行部署。我们在github上有一个示例项目,请参阅aws-codedeploy-sample-tomcat

+0

我确实看过它,但看起来像使用buildspec.yml。不是用于代码构建?我只是在代码部署的情况下试过这个,它创建的zip文件是空的。你能否详细解释一下上面的项目是如何压缩战争,脚本和appsec.yml的? – Usmi

+0

如果您只想使用CodeDeploy,则可以忽略buildspec.yml文件(用于CodeBuild)。你需要做的部署是使用appspec.yml文件 – binbinlu