静态代码扫描工具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静态代码分析工具. ...
随机推荐
- Objective-C的面向对象特性(二)
在Objective-C语言中, 类别.类扩展(也称为匿名类别)以及协议是Objective-C 语言级别支持的模式,用来实现对类进行功能扩展. 一.类别--用来增加方法到已存在类 声明一个类别的语法 ...
- Leetcode_260_Single Number III
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/50276549 Given an array of numb ...
- Python的基本数据数字、字符串、布尔值及其魔法
基本数据类型介绍 若要把Pyhton的基本数据类型:数字(int).字符串(str).布尔(bool).列表(list).元组(tuple).字典(dict)都分为一个个不同的角色 如:战士,魔法师, ...
- Microsoft C++ 异常: std::system_error std::thread
第一次使用std::thread,把之前项目里面的Windows的thread进行了替换,程序退出的然后发生了std::system_error. 经过调试,发现std::thread ,join了两 ...
- C# 数据库链接字符串加密工具
有些项目尤其是WinForm或者是WPF项目,针对一些工具形式的小项目,不想软件流出去之后,懂程序的的拿到手之后一看配置文件就知道了我们数据库的用户名和密码,如果外网能访问的话,那就麻烦大了.所以这里 ...
- QT窗体的小技巧
1.界面透明 setWindowOpacity(0.8);//构造函数中加此句,1为不透明,0为完全透明,0.8为80%不透明. 2.设置背景图片 QPixmap pixmap = QPixmap(& ...
- Spring使用 --- 基本概念(二):AOP,面向方面编程
Table of Contents 什么是面向方面编程 怎样使用 什么时候使用 好处 本文讲述sprint的第二个基本概念: AOP,即面向方面编程 什么是面向方面编程 软件项目中,日志系统等服务系统 ...
- Linux环境安装配置JDK
本文安装环境为Ubuntu14 64位,jdk版本为jdk1.6.0_38,安装文件名为jdk-6u38-linux-x64.bin(根据系统不同,下载不同的安装文件) 下载地址:http://www ...
- spring cloud 入门系列七:基于Git存储的分布式配置中心
我们前面接触到的spring cloud组件都是基于Netflix的组件进行实现的,这次我们来看下spring cloud 团队自己创建的一个全新项目:Spring Cloud Config.它用来为 ...
- python_函数默认参数设计
>>> def printMax(a,b): if a>b: print(a,'is the max') else: print(b,'is hte max') >> ...