AWS CodeBuild教程:从Maven Build中提取代码

本系列的第2部分中,我们将了解更多有关如何使用CodeBuild服务和ANT或Maven构建实用程序将CodeCommit存储库中的代码在云上进行编译的信息。

最重要的是,不需要提供任何构建服务器。然后将生成的工件存储在AWS S3存储桶中,该存储桶是用于存储和检索Internet上任意数量数据的简单存储服务。这两个教程中的这两个活动都是持续集成的一部分。

在本教程中,我们还将看到如何将Jenkins与CodeBuild集成。

先决条件:

  • 在AWS上最好使用免费套餐。
  • 良好和快速的互联网连接。
  • 使用的AWS地区–亚太地区(新加坡)。

注意:如果您将AWS区域用于CodeCommit服务,则CodeBuild不支持该区域。您需要使用支持的适当区域,因此此处使用新加坡区域。

CodeBuild中的构建过程

以下是使用CodeBuild服务时在构建过程中遵循的过程:

  • 从CodeCommit存储库中获取源代码。源代码也可以存储在GitHub或什至S3存储桶中。
  • CodeBuild服务依赖于一个名为buildspec.yml的文件,该文件包含一些在构建阶段运行的命令,如Install,Pre-Build,Build和Post-Build。该文件必须位于项目文件夹的ROOT中,并且必须提交到存储库。
  • 如果您不想使用buildspec.yml执行构建,则还可以直接使用maven命令。
  • 最后,生成的工件(如J2EE JAR / WAR / EAR文件)存储在S3存储桶中。
  • 还可以将使用AWS Simple Notification Service(SNS)的通知配置为通过电子邮件将构建结果发送给相关用户。

在这里,我们将看到如何使用CodeCommit存储库(请参阅第1部分)和maven命令来构建我们的项目并将工件存储在S3存储桶中。

创建构建项目

登录到AWS并启动CodeBuild服务。单击以创建一个新的生成项目。

输入详细信息,如下所示:

项目名称: AWS-HelloWorld

来源提供者: AWS CodeCommit

存储库: AWS-HelloWorld

操作系统: Ubuntu

运行时: Java

运行时版本: openjdk-8

构建规范:插入构建命令

构建命令: mvn全新安装

输出文件:  Target / AWS-HelloWorld-1.0.0.war(这是从POM文件获取的Artifact ID-Version的格式)。

工件:将工件放置在此构建项目中的位置。

类型: Amazon S3

名称: HWJavaWebTarget(这将是存储桶中的文件夹)。

值区名称: hwcodebuildbucket(该值区必须在运行构建之前首先创建,并且根据约定必须为小写)。

以下3个屏幕截图来自一个表单,用于配置构建项目:

伪像

单击继续,然后单击保存。现在可以通过单击“开始构建”按钮来触发构建

再次单击“开始构建”以查看执行进度。

现在,构建已成功完成,工件已上载到S3存储桶。

S3 bucket存储桶 视图:

现在可以将WAR文件用于部署到适当的应用程序服务器。

Jenkins与AWS CodeBuild的集成

正如我们在本系列教程#1中看到的那样,如何使用CodeCommit存储库配置Jenkins以启用持续集成活动。配置了版本控制存储库后,您现在可以通过将CodeBuild与相同的Jenkins构建作业集成来触发构建。

注意:需要安装Jenkins的AWS CodeBuild插件以进行集成。

使用Jenkins => Manage Plugins安装插件。

选择AWS CodeBuild作为构建环境,然后选择在AWS中配置的适当CodeBuild项目,如下所示。作为配置的一部分,还需要输入IAM用户访问密钥和秘密密钥。

这里需要记住的关键点是,构建不是在本地环境上触发的,而是在云上完成的。因此,无需供应任何构建服务器。

概要

通过本教程,我们了解了如何使用CodeCommit存储库提取代码并使用CodeBuild服务执行Maven构建。

该构建也可以由Jenkins触发。然后将生成的工件(主要是WAR文件)存储在AWS S3存储桶中。

觉得文章有用?

点个广告表达一下你的爱意吧 !😁