手动写sonar plugin 一直File is not a plugin.
原因:打包的时候有问题
标准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.相关推荐
- 手动写sonar 插件
类结构目录: pom 依赖: <?xml version="1.0" encoding="UTF-8"?><project xmlns=&qu ...
- 原来热加载如此简单,手动写一个 Java 热加载吧
1. 什么是热加载 热加载是指可以在不重启服务的情况下让更改的代码生效,热加载可以显著的提升开发以及调试的效率,它是基于 Java 的类加载器实现的,但是由于热加载的不安全性,一般不会用于正式的生产环 ...
- 如何手动写一个命令行工具?
文章目录 前言 一.一个最简单的命令行工具 二.命令行解析工具 1.commander (1)option (2)version (3)command (4)argument 2.co-prompt ...
- 教你手写DMA传输数据(看完这篇你就会手动写啦,保姆级讲解)---- 2020.3.31
关于DMA与串口原理方面的文章: 嵌入式stm32 复习(工作用)- USART(串口)通信原理知识 2020.3.23 添加链接描述 教你手写串口收发数据(看完这篇你就会手动写啦,保姆级讲解)--- ...
- [css] 手动写动画最小时间间隔是多少,为什么?
[css] 手动写动画最小时间间隔是多少,为什么? 一般浏览器的刷新频率为每秒60次,所以最小事件间隔为 1/60*1000 约 16.7ms 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很 ...
- 最近项目开发再一次遇到了启动idea报错:Plugin Error Problems found loading plugins: Plugin “GlassFish Integration“ was
最近项目开发再一次遇到了启动idea报错:Plugin Error Problems found loading plugins: Plugin "GlassFish Integration ...
- MAVROS的plugin到底是什么意思?plugin中文意思是插件
MAVROS的plugin到底是什么意思?plugin中文意思是插件,应该是对应的消息处理插件,之所以说是插件应该是可以由我们自己去添加或者删除,官方自己也可以后面一点点增加,并不影响MAVROS本体 ...
- 自写sonar 插件加载到sonar 服务中的展示信息
在sonar 服务页面的administer->configuration页面展示每一种语言插件的信息: 上图对应的是自写的语言(configfiles)ConfigFiles插件 上面的信息展 ...
- install vim plugin local file offline
download github file.zipcd file git init git add . git commit -m "init"set rtp+=$HOME/.vim ...
最新文章
- 数组-在排序数组中查找数字(统计出现的次数)
- 清华首超新加坡国立大学,成亚洲第一;苏州大学成211学科黑马丨留言送书
- Android中自定义Dialog外形,去除黑底和白色边框
- 51单片机 自动重装载值计算
- python 导入自己写的类_python中自己的类不能被导入
- 音乐播放器 audio
- 《运营之光》《策略产品经理》《推荐系统实践》读书笔记随笔
- php伪静态之APACHE配置篇
- python post请求实例_Python post请求实现代码实例
- 辰视携最新3D视觉技术及解决方案参加华南工博会国际机器视觉展
- 通达OA2019安装教程
- linux 删除中文文件夹,解析Linux文件夹文件创建、删除
- Google微软IBM能打败亚马逊AWS的理由很丰满,进展却骨感
- 使用ffmpeg合并多个mp4文件
- linux图形化界面进不去的问题(startx命令报错bash:startx command not found) 经验之谈
- #概率论#n重伯努利实验
- 如何有效防止PHP木马对网站提权
- 计算机无法连接蓝牙键盘,蓝牙鼠标连接不上电脑怎么办?
- 计算机基础知识 综述题,计算机应用的基础知识:文本表示综述及其改进
- 基于电子病历的临床医疗大数据挖掘流程与方法