PMD 的工具就不再介绍。主要是最近在使用过程中,想通过ide 进行调试时,遇到了些问题,以此文记录该过程。
PMD github 地址为:
获取到本地 位置:
git clone https://github.com/pmd/pmd
从项目介绍上看,是采用 maven 工具构建的。
到官网下载:
http://maven.apache.org/download.cgi
配置maven 环境变量。
来到之前下载pmd源码目录下使用:
结果报错:
本人jdk版本为1.8。
后来修改了文件:
apache-maven-3.3.9\conf\toolchains.xml
指定了,1.7/1.8 版本都指向 1.8 的jdkHome 目录。 其实怀疑这样修改是有隐患的。这个后续再查。但奇怪的是maven官网上告知这个版本,使用jdk1.7+ 以上的不需要配置的,也可能是我理解问题。 这个待查。
好,再尝试一次。
嗯,可以正常跑通了。
目前只是本地可以编译通过了。
但如何导入IDE进行调试?
使用IDE+Meavn插件构建
个人用的IDE 工具是 IntelliJ IDEA Community Edition 2016.1.1
使用过内置的 maven 插件,发现总是失败。后来把IDE 的maven 插件修改为本地下载的Maven 版本可以顺利编译通过。
setting 下配置 maven home 为本地的
setting files 和repository(可以在settings.xml 下配置) 也最好改成 与 maven home 配置的一致。(虽然上面没有动过 settings.xml这个文件)
导入pmd 项目 :
从 pmd.bat 文件上看,Main_CLASS 为: net.sourceforge.pmd.PMD
pmd-core 下的 PMD 类里找到main函数。
直接运行 该类。
看来是正常了。
使用自己的规则文件
这里参考官网的步骤:
http://pmd.sourceforge.net/snapshot/customizing/howtowritearule.html
这样获取了两个文件 , myrule.xml 、 myrule.java
入参直接写死 。 (也可以不用指定 language/version。额,应该说这两项默认值就是如此。)
提示class not find
需要把 java 文件放置到 可以被加载到的目录。
这里直接放入到 pmd-core\src\main\java 目录下(取决于java文件的 package路径,我这个是没有写package的。)
导入引入的jar包(pmd-java)
可以正常运行。当然我知道这个不是好的方案,原谅我没有用过maven,后续会再学习下,更合理的配置。