解决Checkstyle File Name 异常的问题

  • 2020 年 1 月 21 日
  • 筆記

Checkstyle是一款很棒的工具,用来发现很多编码风格的问题。还不了解的同学可以移步这里Android代码规范利器: Checkstyle查看。

但是在使用Checkstyle时,却出现了一些问题,就是file元素的name不是我们当前执行checkstyle任务的路径。

举个例子,比如

  • 我们执行./gradlew checkstyle时项目的路径为~/Document/aProject
  • 但是报告输出的file name属性为/tmp/aProject/Commonxxxx/src/main/java/com/xxxx/core/adapter/xxxxxx.java,基础路径为/tmp/aProject

具体的相关报告的输出结果

<?xml version="1.0" encoding="UTF-8"?>    <checkstyle version="6.19">    <file name="/tmp/aProject/Commonxxxx/src/main/java/com/xxxx/core/adapter/xxxxxx.java">    <error line="26" column="37" severity="warning" message="Member name &apos;mHeaderViews&apos; must match pattern &apos;^[a-z][a-z0-9][a-zA-Z0-9]*$&apos;." source="com.puppycrawl.tools.checkstyle.checks.naming.MemberNameCheck"/>    <error line="27" column="37" severity="warning" message="Member name &apos;mFootViews&apos; must match pattern &apos;^[a-z][a-z0-9][a-zA-Z0-9]*$&apos;." source="com.puppycrawl.tools.checkstyle.checks.naming.MemberNameCheck"/>    <error line="30" column="23" severity="warning" message="Member name &apos;mContext&apos; must match pattern &apos;^[a-z][a-z0-9][a-zA-Z0-9]*$&apos;." source="com.puppycrawl.tools.checkstyle.checks.naming.MemberNameCheck"/>    <error line="62" severity="warning" message="Overload methods should not be split. Previous overloaded method located at line &apos;52&apos;." source="com.puppycrawl.tools.checkstyle.checks.coding.OverloadMethodsDeclarationOrderCheck"/>  

原因

原因是使用了gralde的build cache导致的。

解决方法

执行时不使用gralde build cache

./gradlew --no-build-cache checkstyle