静态代码扫描工具PMD定制xml的规则(一)操作篇
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="tk.jianmo.study" android:versionCode="2" android:versionName="2.0" >
<application android:icon="@drawable/ic_launcher" android:label="@string/app_name" >
<service android:name=".killpoccessserve"/> />
<activity android:label="@string/app_name" android:name=".MainActivity"
android:exported="false" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity>
</application>
</manifest>

其实这里是一个坑.在xpath语法中可以通过@属性来获得对应属性的情况,但是在PMD里的不行,原因是AST解析的不同.怎么办呢?笔者最终在stackoverFlow上找到一个方法.如下格式即可.
所以我们要配置的xpath代码就是: //activity[@*[name()=‘android:exported’ ]=‘false’] 并且选择1.0的语言版本
打开errorprone.xml文件(其他都还是空的),发现里面就是rule的配置方法.(细节不懂的可以去https://pmd.github.io/),具体rule节点一般如下:
<rule name="规则名字"
language="xml"
since="5.0"
message="规则信息"
class="net.sourceforge.pmd.lang.rule.XPathRule" 必须配置,意味着该规则交给XPathRule类做分析
externalInfoUrl="规则解释链接,一般不需要,如果公司有对应安全库网站,可以配置相应url">
<description> 这里是规则的描述
</description>
<priority>3</priority>
<properties>
<property name="version" value="1.0" /> 添加这行,可以配置xpath对应语言版本
<property name="xpath">
<value>
<![CDATA[
规则代码例如: //activity[@*[name()='android:exported']='false']
]]>
</value>
</property>
</properties>
<example>
<![CDATA[
规则场景代码
]]>
</example>
</rule>
复制一份xml,到该resources文件下,然后按上文配置即可. 具体的程序启动就不细讲了~~官网都讲了.
静态代码扫描工具PMD定制xml的规则(一)操作篇的更多相关文章
- Eclipse插件(导出UML图,打开文件资源管理器插件,静态代码分析工具PMD,在eclipse上安装插件)
目录 能够导出UML图的Eclipse插件 打开文件资源管理器插件 Java静态代码分析工具PMD 如何在eclipse上安装插件 JProfiler性能分析工具 从更新站点安装EclEmma 能够导 ...
- Lint——Android SDK提供的静态代码扫描工具
Lint和FindBugs一样,都是静态代码扫描工具,区别在于它是Android SDK提供的,会检查Android项目源文件的正确性.安全性.性能.可用性等潜在的bug并优化改进. 下图简单地描述了 ...
- 静态代码检查工具-PMD初学者入门篇
前言: PMD是一款静态代码分析工具,它能够自动检测各种潜在缺陷以及不安全或未优化的代码. PMD更多地是集中在预先检测缺陷上,它提供了高度可配置的丰富规则集,用户可以方便配置对待特定项目使用那些规则 ...
- 静态代码检查工具-PMD刚開始学习的人入门篇
前言: PMD是一款静态代码分析工具.它能够自己主动检測各种潜在缺陷以及不安全或未优化的代码. PMD很多其它地是集中在预先检測缺陷上.它提供了高度可配置的丰富规则集,用户能够方便配置对待特定项目使用 ...
- iOS开发之使用 infer静态代码扫描工具
infer是Facebook 的 Infer 是一个静态分析工具.可以分析 Objective-C, Java 或者 C 代码,报告潜在的问题. 任何人都可以使用 infer 检测应用,可以将严重的 ...
- 静态代码扫描工具使用教程 - SonarQube+SonarScanner
预置条件: Jdk已安装 Mysql已安装 1. 下载 SonarQube和Sonar scanner. SonarQube: http://www.sonarqube.org/downloads/ ...
- 【Lua篇】静态代码扫描分析(一)初步介绍
一.静态代码分析 静态代码分析是一种通过检查代码而不是执行程序来发现源代码中错误的手段.通常可以帮助我们发现常见的编码错误,例如: 语法错误 违反制定的标准编码 未定义的变量 安全性问 ...
- Docker+Jenkins持续集成环境(3)集成PMD、FindBugs、Checkstyle静态代码检查工具并邮件发送检查结果
为了规范代码,我们一般会集成静态代码检测工具,比如PMD.FindBugs.Checkstyle,那么Jenkins如何集成这些检查工具,并把检查结果放到构建邮件里呢? 今天做了调研和实现,过程如下 ...
- Findbug插件静态java代码扫描工具使用
本文转自http://blog.csdn.net/gaofuqi/article/details/22679609 感谢作者 FindBugs 是由马里兰大学提供的一款开源 Java静态代码分析工具. ...
随机推荐
- 第十八篇 ANDROID的声音管理系统及服务
声音管理系统用来实现声音的输入和输出.声音的控制和路由等功能,包括主和各种音源的音量调节.声音焦点控制,声音外设的检测和状态管理,声音源输入和输出的策略管理.音效的播放.音轨设置和播放.录音设置 ...
- Smali语法汇总(二)
Opcode 操作码(hex) Opcode name 操作码名称 Explanation 说明 Example 示例 0F return vx 返回在vx寄存器的值. 0F00 - return v ...
- spring注解关键字
spring注解: (1)@Controller 控制器 (2)@Autowired 按照类型匹配,可以完成对类成员变量,方法及构造函数进行标注,完成自动装配的工作 @Autowired ...
- obj-c编程10:Foundation库中类的使用(1)[数字,字符串]
我们知道在mac或iphone上编程最终逃不开os x平台,你无法在windows或linux上开发纯正的apple程序.(so不要舍不得银子买mac啦)虽说linux和windows上有移植的obj ...
- MASM中3中文本宏的使用与区别
= 宏 格式 : name = exp 其中,exp只能为32位整数值,且用=宏定义的符号名称可以重定义: EQU 宏 格式1:name EQU exp exp为有效整数值,可以重定义: 格式2:na ...
- C#在PDF中如何以不同颜色高亮文本
高亮的文本有助于阅读者快速有效地获取文章关键信息.在PDF文件中,对文章的不同文本,关键词.句等进行不同颜色的文本高亮操作,可以使阅读者在阅读过程中有效地区分不同高亮颜色文本的意义.在下面的示例中,我 ...
- CRM客户关系管理系统(十二)
十二章.学员报名流程开发 2 12.1.学员报名合同和证件信息上传 功能: 必须勾选报名合同协议 必须上传个人证件信息 最多只能上传三个文件 文件大小2M以内 列出已上传文件 (1)crm/urls ...
- valid palindrome(回文)
Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignori ...
- JDK 常用命令
一) 引言: 当我们安装完JDK时,除了必须的编译运行以外,它就已经自带了很多辅助工具.正所谓“工欲善其事,必先利其器.”如果能用好这些工具,它们将大大方便你的开发.它们的实用和方便有时甚至会使 ...
- 详解Lambda
定义好委托: public delegate int FirDelegate(int a); public delegate int SecDelegate(int a,int b); public ...