本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!
正文本专栏目录结构和参考文献请见1000个问题搞定大数据技术体系
本文参考 Apache Spark 的 scalastyle 配置。
首先需要在 pom.xml 里面新增 scalastyle 的 plugin。
pom.xml先定义 2 个和文件字符编码相关的全局变量。
UTF-8 UTF-8
配置 scalastyle-maven-plugin
org.scalastyle scalastyle-maven-plugin 1.0.0 false true false false ${basedir}/src/main/scala ${basedir}/src/test/scala scalastyle-config.xml ${basedir}/target/scalastyle-output.xml ${project.build.sourceEncoding} ${project.reporting.outputEncoding} check
在项目根目录下定义 scalastyle 的配置文件:scalastyle-config.xml
scalastyle-config.xml 可以无脑复制的部分需要自定义配置的部分Scalastyle standard configuration true ARROW, EQUALS, ELSE, TRY, CATCH, FINALLY, LARROW, RARROW ARROW, EQUALS, COMMA, colon, IF, ELSE, DO, WHILE, FOR, MATCH, TRY, CATCH, FINALLY, LARROW, RARROW ^println$ mutable.SynchronizedBuffer Class.forName (.toUpperCase|.toLowerCase)(?!((|(Locale.ROOT))) throw new w+Error( JavaConversions 不要去隐式导入 scala.collection.JavaConversions._ 了, 导入 scala.collection.JavaConverters._ 并且使用 .asScala / .asJava 方法 extractOpt 使用 jsonOption(x).map(.extract[T]) 来替代 .extractOpt[T],因为后者太低级了。 COMMA ){ (?m)^(s*)/[*][*].*$(r|)n^1 [*] 多行注释使用 Javadoc 风格的行首缩进 case[^n>]*=>s*{ case 子句省略括号 800> 30 10 50 -1,0,1,2,3
java,scala,3rdParty,shockang
javax?..*
scala..*
(?!com.shockang.study.spark.).*
com.shockang.study.spark..*
可选部分
spark(.sqlContext)?.sparkContext.hadoopConfiguration
Runtime.getRuntime.addShutdownHook
Class.forName
Await.result
Await.ready
org.apache.commons.lang.
使用 Commons Lang 3 的类 (包 org.apache.commons.lang3.*) ,不要去使用
Commons Lang 2 了(包 org.apache.commons.lang.*)
FileSystem.get([a-zA-Z_$][a-zA-Z_$0-9]*)
Objects.toStringHelper
避免使用 Object.toStringHelper。使用 ToStringBuilder 来替代。
笔者后续会开源一些 scala 工程,里面使用了上面的 scalastyle 配置,敬请期待。



