IDEA中代码检查工具的安装和使用(PMD,FindBugs,CheckStyle)以及SourceMonitor

插件安装

  • PMD

    Plugins->Browse Repositories…->PMDPlugin->install,完成安装。

  • FindBugs

    Plugins->Browse Repositories…->FindBugs-IDEA->install,完成安装。

  • CheckStyle

    Plugins->Browse Repositories…->CheckStyle-IDEA->install,完成安装。

插件配置

  • PMD
    Other Settions->PMD
    设置options,Target JDK值为1.8,Encoding值为UTF-8。
  • FindBugs
    Other Settions->FindBugs-IDEA
    保持默认设置。
  • CheckStyle
    Other Settions->Checkstyle
    配置Configuration File点击绿色+号,添加CheckStyle-mars.xml文件,并在Configuration File选择该文件为Active。

如何使用

  • PMD
    IDEA的Project导航视图中,项目或模块文件夹点击鼠标右键,弹出菜单选择Run PMD->Pre->Defined->All(或者单个PMD规则)
  • FindBugs
    IDEA的Project导航视图中,项目或模块文件夹点击鼠标右键,弹出菜单选择FindBugs->Analyze Module Files
    Analyze Module Files:分析模块中的所有文件。
    Analyze Project Files:分析项目中的所有文件。
    Analyze All Modified Files:分析全部已修改的文件。
  • CheckStyle
    IDEA的Project导航视图中单选、多选一个文件。
    底部CheckStyle视图,点击绿色三角运行CheckStyle,窗口显示检查报告。

SourceMonitor实战

下面介绍如何使用SourceMonitor建立工程,针对不同的Solution活着Project建立Checkpoint。

1. 安装SourceMonitor,这个不详细介绍,下载安装即可。

2. 打开SourceMonitor,建立工程。

3. 选择语言,并点击下一步。

4. 为当前工程命名,并选择工程文件保存路径。

5. 选择当前工程要度量解析的文件,可以通过配置文件列表(XML)或者指定路径自动搜索方式添加。

6. 选择相关的配置,可以直接下一步忽略,如果有相关需要进行选择设定。

7. 指定当前Checkpoint的名称。

8. 查看配置项,并确定。

9. 确认要度量的文件列表。

10. 工程建立完毕,并完成第一个度量点。

11. 双击检查点,查看各个文件的度量值。

12. 双击某个文件,查看详细信息。

这样,基本的一个工程就建立完毕了,其他的功能,例如设置各个指标的默认值,大家可以自己尝试一下。

IE8 only hack只兼容IE8浏览器的CSS hack

一提到IE就非常蛋疼啊,各个版本的CSS和JS兼容问题简直多如牛毛啊,有木有。一不小心就中招了有木有!

今天要提到的就是解决IE8下的CSS only hack:\0/。看起来是不是很神奇?接下来我们来举个栗子:

<style>

.test {

width:200px;

height:200px;

background-color: green; /*非IE浏览器*/

background-color: blue\0; /*IE9+浏览器*/

background-color: red\0/; /*IE8浏览器*/

*background-color: gray; /*IE7-浏览器*/

_background-color: black; /*IE6-浏览器*/

 

}

</style>

<div class="test"></div>

结语:不要以为上述CSS必须一起使用,告诉你,这些都是可以单独拿出来用的,比如你只想对IE8设置CSS hack,那么只需要在css后面加上“\0/”就可以了,方便直接。

IE8以下浏览器设置Title的问题

在项目中使用jQuery1.7.2作为基础框架,获取title对象和值都没有问题,但是如果需要重新设置title的值的时候在IE低版本浏览器(6、7、8)上就会出现错误,报错的代码块是:

append: function() {
		return this.domManip(arguments, true, function( elem ) {
			if ( this.nodeType === 1 ) {
				this.appendChild( elem );
			}
		});
	}

在IE低版本浏览器上,title不支持appendChild方法,就会抛出“意外的调用了方法或属性访问。”的错误,那么我们应该怎么解决这个问题呢?因为title在Html中属于比较特殊的元素,所以可以通过document.title来获取和设置,而且兼容性很好,所以我们可以这样做:

function setTitle(v){
            try{
                document.title = v;
            }catch (e){
                $('title').text(v);
            }
        }