本文介绍使用Jenkins构建SAE Java应用的持续集成。
前提条件
- 获取阿里云的AccessKey ID和AccessKey Secret。具体操作,请参见创建AccessKey。
- 在SAE控制台中创建一个可以部署的应用。具体步骤,请参见在SAE控制台使用WAR包部署Java Web应用。
- 使用GitLab托管您的代码。您可以自行搭建GitLab或者使用阿里云Code。
本文使用通过自行搭建的GitLab做演示,更多信息,请参见GitLab。
- 安装Maven。具体操作,请参见Maven。
- 安装Jenkins。具体操作,请参见Jenkins官网。
背景信息
您可以使用Jenkins构建SAE应用的持续集成方案。本文适用于对以下语言或工具有一定了解的开发人员。
工具 | 说明 |
---|---|
Maven | Maven是一个项目管理和构建的自动化工具。 |
Jenkins | Jenkins是一个可扩展的持续集成引擎。 |
GitLab | GitLab是一个利用Ruby on Rails开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。 它拥有与GitHub类似的功能,能够浏览源代码,管理缺陷和注释。 |
步骤一:配置项目
修改Maven项目配置,添加toolkit-maven-plugin及部署信息,具体操作,请参见通过Maven插件自动化部署应用。
步骤二:配置Jenkins
步骤三:创建Jenkins任务
步骤四:配置GitLab的Web Hook
步骤五:提交变更到GitLab
提交部署成功输出的日志信息(
)。15:58:51 [INFO] Deploy application successfully!
15:58:51 [INFO] ------------------------------------------------------------------------
15:58:51 [INFO] BUILD SUCCESS
15:58:51 [INFO] ------------------------------------------------------------------------
15:58:51 [INFO] Total time: 24.330 s
15:58:51 [INFO] Finished at: 2018-12-25T15:58:51+08:00
15:58:51 [INFO] Final Memory: 23M/443M
15:58:51 [INFO] ------------------------------------------------------------------------
15:58:51 Finished: SUCCESS
(可选)创建多模块工程的Jenkins任务
如果您需要创建多模块工程的Jenkins任务,您可以参考以下内容设置。
创建多模块工程的Jenkins任务和步骤二:配置Jenkins的第5步基本相同,只需要修改调用顶层Maven目标。如果工程为多模块工程,想在Jenkins中部署子模块的话,那么需要在父模块中调用mvn clean install
命令,然后在子模块中调用mvn clean package toolkit:deploy -Dtoolkit_profile=toolkit_profile.yaml -Dtoolkit_package=toolkit_package.yaml
-Dtoolkit_deploy=toolkit_deploy.yaml
命令。以Demo工程为例,工程结构如下。
sh-3.2# tree -L 1 carshop
carshop
├── detail
├── itemcenter
├── itemcenter-api
└── pom.xml
其中,detail、itemcenter、itemcenter-api为子模块,如果您想部署itemcenter模块的话,需要在父工程中设置一个clean install构建目标,然后在itemcenter模块中设置clean package toolkit:deploy -Dtoolkit_profile=toolkit_profile.yaml -Dtoolkit_package=toolkit_package.yaml
-Dtoolkit_deploy=toolkit_deploy.yaml
构建目标。