一、环境准备

java 1.8, maven 3.1

检查自己的环境是否支持 sonarqube的插件开发

java -version
mvn -version

二、创建maven项目

pom.xml 文件如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.ice.sonar.plugin</groupId><artifactId>sonar-sample-plugin</artifactId><version>0.0.1-SNAPSHOT</version><packaging>sonar-plugin</packaging><description>Sample Plugin for SonarQube</description><inceptionYear>2017</inceptionYear><name>sonar-sample-plugin</name><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.sonarsource.sonarqube</groupId><artifactId>sonar-plugin-api</artifactId><!-- minimal version of SonarQube to support. Note that the groupId was "org.codehaus.sonar" before version 5.2 --><version>5.6</version><!-- mandatory scope --><scope>provided</scope></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.2</version><configuration><encoding>${project.build.sourceEncoding}</encoding><source>${java.version}</source><target>${java.version}</target></configuration></plugin><plugin><groupId>org.sonarsource.sonar-packaging-maven-plugin</groupId><artifactId>sonar-packaging-maven-plugin</artifactId><version>1.17</version><extensions>true</extensions><configuration><!-- the entry-point class that extends org.sonar.api.SonarPlugin --><pluginClass>com.ice.sonar.plugin.SamplePlugin</pluginClass><!-- advanced properties can be set here. See paragraph "Advanced Build Properties". --></configuration></plugin></plugins></build>
</project>

View Code

修改完pom文件后需要 执行 maven->update project

创建SamplePlugin.java文件如下:

package com.ice.sonar.plugin;import org.sonar.api.Plugin;public class SamplePlugin implements Plugin {@Overridepublic void define(Context context) {System.out.println("SamplePlugin is defined");}
}

View Code

三、构建

mvn clean package

四、发布

“冷”发布

将构建好的jar复制到 extensions/plugins/ 目录下

重启sonarqube服务

“热”发布

修改配置文件conf/sonar.properties

# 在配置文件中添加剂
sonar.web.dev=true

重启服务

在构建jar包是使用如下参数

mvn package org.codehaus.sonar:sonar-dev-maven-plugin::upload -DsonarHome=/path/to/server/home -DsonarUrl=http://localhost:8080

参考sonarqube官网 Build Plugin

sonarqube插件开发(二) 开发插件相关推荐

  1. sonarqube插件开发(三) 调试插件

    环境 windows + eclipse +sonarqube server 5.6.4 准备 新建一个maven项目,其中加入了一些插件所用的jar <project xmlns=" ...

  2. 【开发者portal在线开发插件系列二】多条上下行消息(messageId的使用)

    前言和基本操作请参考[开发者portal在线开发插件系列一]profile和基本上下行消息,此处不再复述,没操作过的小伙伴一定要先去看看哦~ 话不多说,开始今天的演(表)示(演) 场景说明: 假设一: ...

  3. Idea插件开发(二)——插件的创建打包及发布

    Idea插件开发(一)--插件的分类及基础认识 Idea插件开发(二)--插件的创建打包及发布 Idea插件开发(三)--插件JSL的完整开发过程 上一篇简单介绍了插件的基本知识,接下来直接上手开发, ...

  4. 关于C#对AutoCad2007二次开发插件工作总结

    上次写关于cad二次开发插件的文章,还是在插件的开发过程中,今天写的是功能已经基本开发完毕,用户开始使用的这样一个节点,进行一个小小的总结吧 此次开发插件,主要分了几个大的功能点,功能点的是来自于用户 ...

  5. 【Chrome浏览器插件开发】浏览器插件运行机制03之实战使用Vue.js 3 + Vite 2开发出简易的浏览器插件(含源码)

    文章目录 知识点: 一.使用 vite 创建项目 1.1 环境搭建 1.2 安装vite工具 1.3 创建vite项目 1.4 进入项目并安装依赖 1.5 修改端口 1.6 运行项目 二.创建项目资源 ...

  6. odl自开发插件编译集成到发行版(opendaylight学习笔记二)

    上一篇:opendaylinght内核插件开发简单实现(opendaylight学习笔记一) 1.下载发行版项目源码 git clone "https://git.opendaylight. ...

  7. 【chrome】插件开发-教程00(如何开发插件)

    一 chrome浏览器插件的基础知识 1.认识chrome插件文件: chrome插件的扩展名是:.crx,可以在chrome官方的应用商店下载(https://chrome.google.com/w ...

  8. uniapp插件开发:uniapp使用uni_modules开发插件、发布插件,直接导入,一键升级

    目录 背景 开发前提条件 插件开发步骤 参考 更多 背景 uni_modules是uni-app的插件模块化规范(HBuilderX 3.1.0+支持),通常是对一组js sdk.组件.页面.uniC ...

  9. Solid Edge 二次开发插件 ProkitAddIn 属性管理器

    Solid Edge 二次开发插件 ProkitAddIn 属性管理器 特点: 涵盖与Solid Edge自带的"属性管理器"的基本功能. 额外增加外部数据(具有关联关系的数据,或 ...

  10. eclipse插件开发_开发Eclipse插件的最佳实践

    在为IDE Eclipse环境开发插件时,您有几个设计注意事项. 这些注意事项可确保您: 不要锁定用户界面线程. 在不影响性能的情况下装饰用户界面. 在后台处理数据. 本教程讨论了如何利用这些设计注意 ...

最新文章

  1. python爬取豆瓣电影并分析_爬取豆瓣电影top250提取电影分类进行数据分析
  2. MySQL操作实战(三):表联结
  3. 数据科学与大数据排名思考题_排名前5位的数据科学课程
  4. tx2无法识别网络_Jetson TX2开篇--网络配置
  5. holer实现外网访问内网数据库
  6. 别以为程序员的工作就是写代码
  7. Classpath entry org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER will not be exported or published. Runtim
  8. vscode 翻译_前端新手 VSCode 入门指南
  9. VScode使用记录二:Windows 7下安装GCC、使用VSCode编译代码
  10. 磁盘设置压缩导致无法将数据库还原到该硬盘的问题
  11. java 文字串叠字检查_类似“又双叒叕”的字你认识多少?来看最全的叠字收录...
  12. cocos2d 物理平抛,斜抛运动
  13. 机器学习之朴素贝叶斯、贝叶斯信念网络
  14. 训练3.21(CF 543B Destroying Roads)
  15. 当人们流行“炮轰”联想时:没想到的联想
  16. 打电话显示短信呼服务器,已启用短信呼服务 已启用短信呼服务是什么意思
  17. Openssl中的Libcrypto API
  18. [note] 电磁场与微波课组(二) 波动光学(1)
  19. 使用 EMQ X Neuron 构建基于 Modbus 的 IIoT 应用
  20. 一只华南虎引发的蝴蝶效应![转]

热门文章

  1. C#中 As 和强制转换的总结
  2. CIO:节省IT部门开支十招
  3. [转贴]Linux新增用户和组
  4. 搜索引擎优化(SEO,Search Engine Optimization)如何让你的网站靠前排名
  5. 使用xampp和tiki搭建内网wiki
  6. 由单目标跟踪实现多目标跟踪的思想框架
  7. iOS 给webView加进度条(WKWebView)
  8. 李佳琦618直播清单都在这张思维导图上了
  9. 会议录音被误删了用EasyRecovery怎么恢复
  10. java前后端分离是否会成为趋势