sonarqube插件开发(二) 开发插件
一、环境准备
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>
修改完pom文件后需要 执行 maven->update project
创建SamplePlugin.java文件如下:
package com.ice.sonar.plugin;
import org.sonar.api.Plugin;
public class SamplePlugin implements Plugin {
    @Override
    public void define(Context context) {
        System.out.println("SamplePlugin is defined");
    }
}
三、构建
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插件开发(二) 开发插件的更多相关文章
- sonarqube插件开发(三) 调试插件
		环境 windows + eclipse +sonarqube server 5.6.4 准备 新建一个maven项目,其中加入了一些插件所用的jar <project xmlns=" ... 
- 四、K3 WISE 开发插件《工业单据老单插件开发新手指导》
		开发环境:K/3 Wise 13.0.K/3 Bos开发平台.Visual Basic 6.0 =============================================== 目录 一 ... 
- 【开发者portal在线开发插件系列二】多条上下行消息(messageId的使用)【华为云技术分享】
		前言和基本操作请参考[开发者portal在线开发插件系列一]profile和基本上下行消息,此处不再复述,没操作过的小伙伴一定要先去看看哦~ 话不多说,开始今天的演(表)示(演) 场景说明: 假设一: ... 
- 如何为Apache JMeter开发插件(二)—第一个JMeter插件
		文章内容转载于:http://lib.csdn.net/article/softwaretest/25700,并且加上个人一些截图 本篇将开启为JMeter开发插件之旅,我们选择以Function(函 ... 
- 【eclipse插件开发实战】 Eclipse插件开发5——时间插件Timer开发实例详解
		Eclipse插件开发5--时间插件Timer开发实例详解 这里做的TimeHelper插件设定为在菜单栏.工具栏提供快捷方式,需要在相应地方设置扩展点,最后弹出窗体显示时间. 在上一篇文章里创建好了 ... 
- 基于.NET MVC的高性能IOC插件化架构(二)之插件加载原理
		上一篇博文简单介绍了下插件化的代码组成部分:http://www.cnblogs.com/gengzhe/p/4390932.html,源码地址:https://github.com/luohuazh ... 
- 用jQuery开发插件详解
		jQuery插件的开发包括两种: 一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法.jQuery的全局函数就是属于jQuery命名空间的函数,另一种是对象级 ... 
- 【开发者portal在线开发插件系列五】命令的响应,即命令结果的上报(mid的使用)
		基础篇 [开发者portal在线开发插件系列一]profile和基本上下行消息 [开发者portal在线开发插件系列二]多条上下行消息(messageId的使用) 基础场景见上面两个帖子,这里单独介绍 ... 
- jQuery中开发插件的两种方式
		jQuery中开发插件的两种方式(附Demo) 做web开发的基本上都会用到jQuery,jQuery插件开发两种方式:一种是类扩展的方式开发插件,jQuery添加新的全局函数(jQuery的全局函数 ... 
随机推荐
- df命令/du命令/磁盘分区
			4.1 df命令 4.2 du命令 4.3/4.4 磁盘分区 df命令 磁盘管理df 大小单位是KB,挂载点是linux上的目录 df -h 根据磁盘大小适当调整单位;单位有:Byte ,1KB,1M ... 
- Asp.net中文本框全选的实现
			一.鼠标滑过textbox全选 前台: <asp:TextBox runat="server" onMouseOver="this.focus();this.sel ... 
- php过滤字段htmlentities,htmlspecialchars,strip_tags
			1.strip_tags:过滤html标签比如<a> <html> <script> 如: $str = '<a href="test.html&q ... 
- RMAN:简单的duplicate创建新数据库 for 12c+
			构建参数文件 *.db_name='test2' ##### 需要注意的地方,和rman的duplicate目标库一致 *.compatible='18.0.0' ##### 关键的地方,每个版本的模 ... 
- 怎么用ABBYY重组PDF文档
			ABBYY PDF Transformer+是一款可创建.编辑以及将PDF文件转换为其他可编辑格式的通用工具,除此之外,还可以使用ABBYY PDF Transformer+重新组织PDF文档,如在文 ... 
- [转] Linux常用命令大全(非常全!!!)
			出处:https://www.cnblogs.com/yjd_hycf_space/p/7730690.html Linux常用命令大全(非常全!!!) 最近都在和Linux打交道,感觉还不错.我觉得 ... 
- VC++调用MSFlexGrid的SetRow方法,出现异常“Invalid Row Value”
			MSFlexGrid是微软提供的网格表格控件,SetRow方法用于设置当前焦点所在行. C++ Code 12345 void CMSFlexGrid::SetRow(long nNewVal ... 
- zookeeper入门系列讲解
			zookeeper可谓是目前使用最广泛的分布式组件了.其功能和职责单一,但却非常重要. 在现今这个年代,介绍zookeeper的书和文章可谓多如牛毛,本人不才,试图通过自己的理解来介绍zooke ... 
- Phpcms v9 实现首页|列表页|内容页调用点击量的代码
			很多朋友经常问Phpcms v9的首页.列表页.内容页点击量如何调用.今天给大家分享phpcms V9如何分别在首页.列表页.内容页调用点击量代码 1,Phpcms v9首页调用点击量 {pc:con ... 
- mysql5.7 启动报发生系统错误2
			1. http://dev.mysql.com/downloads/mysql/ 下载mysql5.7 zip包 2. 下载好后解压文件,解压的内容如图,您可以把内容解压到想要的位置 ... 
