原因:打包的时候有问题

标准sonar plugin 包里面的META-INF 下面的MANIFEST.MF文件如下

anifest-Version: 1.0
Plugin-Description: Enables analysis of Java Properties files.Plugin-BuildDate: 2019-04-30T16:41:44+0800
Plugin-Display-Version: 2.7-SNAPSHOT
Archiver-Version: Plexus Archiver
SonarLint-Supported: false
Plugin-Version: 2.7-SNAPSHOT
Plugin-ChildFirstClassLoader: false
Implementation-Build: 0
Plugin-OrganizationUrl: mailto:david.racodon@gmail.com
Build-Time: 2019-04-30T08:40:46+0000
Plugin-Key: javaProperties
Plugin-Class: org.sonar.plugins.jproperties.JavaPropertiesPlugin
Created-By: Apache Maven 3.5.3
Build-Jdk: 1.8.0_131
Plugin-Name: Java Properties

而我打出来的jar 包如下:

Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: wanyi
Created-By: Apache Maven 3.5.3
Build-Jdk: 1.8.0_131

上面是问题的本质体现,导致原因是sonar插件是在主pom 中添加了

<parent><groupId>org.sonarsource.parent</groupId><artifactId>parent</artifactId><version>41</version></parent>

而自己开发的插件在主pom中添加:

 <plugin><groupId>org.sonarsource.sonar-packaging-maven-plugin</groupId><artifactId>sonar-packaging-maven-plugin</artifactId><version>1.17</version><extensions>true</extensions><configuration><pluginDescription>Scanner configuration files</pluginDescription><pluginKey>config-files</pluginKey><pluginName>configfiles</pluginName><pluginClass>com.lingtian.sonar.plugin.ConfigFileScanPlugin</pluginClass><sonarLintSupported>true</sonarLintSupported><sonarQubeMinVersion>5.6</sonarQubeMinVersion> <!-- allow to depend on API 6.x but run on LTS --></configuration>
</plugin>

使用eclipse的maven install 上面配置的sonar-packaging-maven-plugin 没有生效,但是在自写

插件中添加sonar parent,会有maven-lisence和maven-enforce 校验,主pom 报错!

解决方式:1.要么直接修改打出来的jar 中MANIFEST.MF文件

2.在主pom中添加sonar-packaging-maven-plugin, 执行maven 指令:

mvn clean package sonar-packaging:sonar-plugin,但是打出来的jar 包里面只有编译的工程代码

的class文件,并没有依赖各种的包,所以在sonar 加载运行插件的时候,报各种class not fount.

在主pom 中添加:

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><version>3.0.1</version><executions><execution><id>copy-dependencies</id><phase>package</phase><goals><goal>copy-dependencies</goal></goals><configuration><outputDirectory>target/lib</outputDirectory><overWriteSnapshots>true</overWriteSnapshots></configuration></execution></executions>
</plugin>

此时需要在主pom 中添加 <packaging>sonar-plugin</packaging> !       官方演示实例:

下载地址:https://github.com/SonarSource/sonar-custom-rules-examples

手动写sonar plugin 一直File is not a plugin.相关推荐

  1. 手动写sonar 插件

    类结构目录: pom 依赖: <?xml version="1.0" encoding="UTF-8"?><project xmlns=&qu ...

  2. 原来热加载如此简单,手动写一个 Java 热加载吧

    1. 什么是热加载 热加载是指可以在不重启服务的情况下让更改的代码生效,热加载可以显著的提升开发以及调试的效率,它是基于 Java 的类加载器实现的,但是由于热加载的不安全性,一般不会用于正式的生产环 ...

  3. 如何手动写一个命令行工具?

    文章目录 前言 一.一个最简单的命令行工具 二.命令行解析工具 1.commander (1)option (2)version (3)command (4)argument 2.co-prompt ...

  4. 教你手写DMA传输数据(看完这篇你就会手动写啦,保姆级讲解)---- 2020.3.31

    关于DMA与串口原理方面的文章: 嵌入式stm32 复习(工作用)- USART(串口)通信原理知识 2020.3.23 添加链接描述 教你手写串口收发数据(看完这篇你就会手动写啦,保姆级讲解)--- ...

  5. [css] 手动写动画最小时间间隔是多少,为什么?

    [css] 手动写动画最小时间间隔是多少,为什么? 一般浏览器的刷新频率为每秒60次,所以最小事件间隔为 1/60*1000 约 16.7ms 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很 ...

  6. 最近项目开发再一次遇到了启动idea报错:Plugin Error Problems found loading plugins: Plugin “GlassFish Integration“ was

    最近项目开发再一次遇到了启动idea报错:Plugin Error Problems found loading plugins: Plugin "GlassFish Integration ...

  7. MAVROS的plugin到底是什么意思?plugin中文意思是插件

    MAVROS的plugin到底是什么意思?plugin中文意思是插件,应该是对应的消息处理插件,之所以说是插件应该是可以由我们自己去添加或者删除,官方自己也可以后面一点点增加,并不影响MAVROS本体 ...

  8. 自写sonar 插件加载到sonar 服务中的展示信息

    在sonar 服务页面的administer->configuration页面展示每一种语言插件的信息: 上图对应的是自写的语言(configfiles)ConfigFiles插件 上面的信息展 ...

  9. install vim plugin local file offline

    download github file.zipcd file git init git add . git commit -m "init"set rtp+=$HOME/.vim ...

最新文章

  1. 数组-在排序数组中查找数字(统计出现的次数)
  2. 清华首超新加坡国立大学,成亚洲第一;苏州大学成211学科黑马丨留言送书
  3. Android中自定义Dialog外形,去除黑底和白色边框
  4. 51单片机 自动重装载值计算
  5. python 导入自己写的类_python中自己的类不能被导入
  6. 音乐播放器 audio
  7. 《运营之光》《策略产品经理》《推荐系统实践》读书笔记随笔
  8. php伪静态之APACHE配置篇
  9. python post请求实例_Python post请求实现代码实例
  10. 辰视携最新3D视觉技术及解决方案参加华南工博会国际机器视觉展
  11. 通达OA2019安装教程
  12. linux 删除中文文件夹,解析Linux文件夹文件创建、删除
  13. Google微软IBM能打败亚马逊AWS的理由很丰满,进展却骨感
  14. 使用ffmpeg合并多个mp4文件
  15. linux图形化界面进不去的问题(startx命令报错bash:startx command not found) 经验之谈
  16. #概率论#n重伯努利实验
  17. 如何有效防止PHP木马对网站提权
  18. 计算机无法连接蓝牙键盘,蓝牙鼠标连接不上电脑怎么办?
  19. 计算机基础知识 综述题,计算机应用的基础知识:文本表示综述及其改进
  20. 基于电子病历的临床医疗大数据挖掘流程与方法

热门文章

  1. 启动hbase后hregionserver没有启动
  2. matlab计算hessian矩阵
  3. 决策树-熵计算-ID3算法(转)
  4. linux检查运行程序文件,LINUX定时检查程序运行状态
  5. 微型计算机启天A5000-B124说明,微型计算机原理及应用知识点总结
  6. JEPaaS笔记||学习培训资料||案例视频 【全套】
  7. 自定义队列(优化了数组固定长度的弊端)以及集合中的一些重点内容
  8. 数组以及对象遍历方法对比
  9. 关系型数据库全表扫描分片详解
  10. ZJOI2005午餐