【DevOps】Atlassian插件开发指南

本文以Bamboo插件开发为例,记录一下插件开发过程。

一、简介

Atlassian Bamboo 6.9.1 是一款持续集成和持续交付(CI/CD)工具,支持使用插件扩展其功能。如果需要开发自己的 Bamboo 插件并添加到 Bamboo 中,则可以参考以下指南。

二、开发过程

1. 开发环境配置

要开发 Bamboo 插件,需要安装 Java 开发工具包(JDK)和 Atlassian Plugin SDK。Atlassian Plugin SDK 包含了 Atlassian 插件开发所需的一切工具和库。

下载地址:Atlassian-Plugin-SDK-installer

2.创建插件项目

使用 Atlassian Plugin SDK 中的 "atlas-create-bamboo-plugin" 命令创建一个新的 Bamboo 插件项目。该命令将生成一个基本的插件项目结构,包括 pom.xml 文件和插件的基本目录结构。

根据提示,输入插件的组ID工件ID版本包名称

其中,Use OSGI Java Config:(Y/N/y/n)N: : 直接回车即可,默认为N;

回车后,控制台会输出插件的坐标信息,会出现Y: : 选项,直接回车即可。

3.编写插件代码

在创建好的插件项目中,可以根据插件的需求编写相应的代码。Bamboo 插件可以包含以下类型的模块:

  • Web 模块:允许您添加自定义 Web 页面和 REST API 到 Bamboo 中。
  • Build 模块:允许您添加自定义构建任务和构建器到 Bamboo 中。
  • Deploy 模块:允许您添加自定义部署任务和部署器到 Bamboo 中。
  • Task 模块:允许您添加自定义任务到 Bamboo 中。
  • Administration 模块:允许您添加自定义系统配置页面到 Bamboo 中。

4.添加插件元数据

根据插件类型,调整修改atlassian-plugin.xml文件,该文件是插件元数据描述文件。

5.打包和安装插件

完成插件代码编写后,可以使用 Atlassian Plugin SDK 中的 "atlas-package" 命令打包插件。打包后的插件文件位于 "target" 目录中。

6.安装插件

要安装插件,请将插件文件上传到 Bamboo 插件管理页面中。在上传插件后,Bamboo 将自动检测和加载插件。

7.调试插件

要调试插件,可以使用 Atlassian Plugin SDK 中的 "atlas-debug" 命令启动 Bamboo,以便在本地环境中进行调试。
注意事项:

  • 可以插件开发调试可能会影响Bamboo的稳定性和性能,建议在测试环境中进行调试,充分验证后再进行插件安装。
  • Bamboo默认的调试端口为5005

三、参考资料

Bamboo插件开发指南官方文档地址: https://developer.atlassian.com/server/bamboo/bamboo-plugin-guide
Bamboo开发者社区地址: https://community.atlassian.com/t5/Bamboo-discussions/bd-p/bamboo-discussions
HipChat4Bamboo Demo: https://github.com/go2group/hipchat-bamboo

相关推荐
IT19954 分钟前
踩坑实录:CentOS 默认 Fail2Ban 挡不住高频并发攻击,漏洞修复一步到位
linux·运维·centos
许彰午4 分钟前
零基础无文档啃读纯实操摸索学会Docker全过程
运维·docker·容器
江湖有缘6 分钟前
零门槛搭建个人微社区:Docker部署 Paopao-ce 完整教程
运维·docker·容器
摇滚侠7 分钟前
VMvare 安装 Linux CentOS 7
linux·运维·centos
吉星9527ABC11 分钟前
在centos9stream上离线安装mysql5.7客户端的过程
运维·centos9steam
CingSyuan11 分钟前
服务器现场排障:在 Windows 下使用 Linux reader 直接查看 Linux 系统 U 盘中的日志文件与文件结构
linux·运维·服务器·网络·windows
Upsy-Daisy11 分钟前
Hermes Agent 学习笔记 07:Messaging Gateway,让 Agent 从终端走向多平台入口
运维·服务器·数据库
艾莉丝努力练剑24 分钟前
【Linux网络】多路转接select
java·linux·运维·服务器·网络·tcp/ip
Cx330❀26 分钟前
【Linux网络】从零定制应用层协议:黏包问题、全双工缓冲区与 Jsoncpp 序列化深度解析
linux·运维·服务器·开发语言·网络·c++·人工智能
Benszen28 分钟前
云计算基础-5:Linux 重定向与管道
linux·运维·服务器