Checkstyle CustomImportOrder超过3个可定义的组?

时间:2018-07-13 13:52:37

标签: checkstyle

我公司的Java导入订单标准将需要超过我在表格中看到的三个可定义组,即STANDARD_JAVA_PACKAGE,THIRD_PARTY_PACKAGE和SPECIAL_IMPORTS。我的问题分为两部分: 1)是否可以定义更多自定义正则表达式,或直接在VALUE中将regexes用于customImportOrderRules? 2)我完全可以这样做,因为com.our_company应该排在所有其他com之后。进口。

导入规则大约是

  1. 静态进口
  2. java。*
  3. javax。*
  4. com。*除我们公司外
  5. 什么。*
  6. org。*
  7. 东西。*
  8. com.mycompany。*
  9. 还有什么

由于我们还在组之间强制使用空行,因此我无法将5、6和7合并为一个,并且不能依靠排序顺序来保持整洁。最糟糕的情况是,我们已经在Intellij中定义了此名称,只需要记住每次都要对订单进行自动排序。

1 个答案:

答案 0 :(得分:0)

回答您的问题:

  1. 根据this ticket,看来仅凭CustomImportOrder就无法实现所需的功能。相反,您应该使用ImportOrder,下面是完整的示例。
  2. 可以使用ImportOrder

这应该适合您的情况:

<module name="ImportOrder">
    <property name="option" value="top"/>
    <property name="groups" value="/^java\./,javax,/^com\.(?!mycompany)/,nthing.org,pthing,com.mycompany"/>
    <property name="ordered" value="true"/>
    <property name="separated" value="true"/>
    <property name="separatedStaticGroups" value="true"/>
    <property name="sortStaticImportsAlphabetically" value="true"/>
</module>

小澄清。在groups属性中,有两组/^com\.(?!mycompany)/com.mycompany,第一组是使用negative look-ahead的正则表达式,第二组只是导入的通用前缀字符串。

相关问题