目录

Coursera 课程《算法,第一部分》编程作业环境配置

目录

《算法,第一部分》编程作业评审时会使用各种工具对代码进行检查,所以不如先按照检查说明自己配置相同的环境保证自己提交的代码质量够高。虽然项目提供了一个示例的 IDEA 文件夹,但提供的项目环境不适合自己的目录结构,只好自己折腾了。

Spotbugs

因为编程用的 IDE 是 IntelliJ IDEA Community Edition,在本文写作的时候还没有找到能够完美配合当前版本 Spotbugs 使用的插件,所以只好使用 Gradle 来管理运行 Spotbugs。

  1. 导入 Gradle 的 Spotbugs 插件

    1
    2
    3
    
    plugins {
        id "com.github.spotbugs" version "1.6.9"
    }
    
  2. 设置 build.gradle 中的 Spotbugs 相关配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    spotbugs {
        toolVersion = '3.1.9'   // 定义 Spotbugs 的版本,不低于作业检查说明的版本
        sourceSets = [sourceSets.main]
        ignoreFailures = true
        reportsDir = file("$project.buildDir/spotbugsReports")  // 报告文件位置
        effort = "max"
        reportLevel = "low"  // 即使低警告等级的 bug 也要报告
        includeFilter = file("$rootProject.projectDir/config/spotbugs/includeFilter.xml")  // 设置本项目的专用 bug 过滤规则
    }
    
  3. 官方 Spotbugs 过滤文件 下载后改名 includeFilter.xml 放入上一步设置的文件夹中

  4. 个人定义步骤,在上述过滤文件中加入如下内容,约束 bug 检查范围

    1
    2
    3
    
    <Match>
        <Package name="homework"/>
    </Match>
    

    注意:作业检查要求代码文件没有包设定,最后交作业的时候根据需要更改即可,本文中加了包设置就要做出这样的额外修改。

  5. 运行 Gradle 的 spotbugsMain 任务检查空文件夹内容,确定没有 bug 报告,即下文中 total_bugs 属性为 0 即可

    1
    
    <FindBugsSummary timestamp="Sun, 10 Feb 2019 15:32:03 +0800" total_classes="7" referenced_classes="27" total_bugs="0" total_size="110" num_packages="1" java_version="11.0.2" vm_version="11.0.2+9-LTS" cpu_seconds="11.05" clock_seconds="4.18" peak_mbytes="165.01" alloc_mbytes="512.00" gc_seconds="0.12">
    

PMD

下载 IDE 中的 PMD 插件,导入课程的 PMD 配置文件地址 即可。

CheckStyle

IDE 本身可以使用 CheckStyle 插件,配置过程就简单了很多,在插件下载后要找到课程的 CheckStyle 配置文件地址,添加在线配置。 但是,因为课程检查配置中使用了老师自己编写的 CheckStyle 插件,开始导入的时候总是不成功,后来搜索老师在的学校的网站,在这个项目数据文件的地址下载对应文件,在里面找到了名为 checkstyle-lift.jar 的文件添加到了 IDEA CheckStyle 插件的外部文件中才成功导入规则。