【问题标题】:Checkstyle CustomImportOrder more than 3 definable groups?Checkstyle CustomImportOrder 超过 3 个可定义的组?
【发布时间】:2018-12-21 22:22:51
【问题描述】:

我公司的 Java 导入顺序标准需要的不仅仅是我在检查表中看到的三个可定义组,它们是 STANDARD_JAVA_PACKAGETHIRD_PARTY_PACKAGESPECIAL_IMPORTS。我的问题有两个部分:

  1. 有没有办法定义更多的自定义正则表达式,或者直接在 VALUE 中为 customImportOrderRules 使用正则表达式?

  2. 我可以这样做吗,因为 com.our_company 应该在所有其他 com 之后。进口。

导入规则大概是

  1. 静态导入
  2. java.*
  3. javax.*
  4. com.* 除了我们公司
  5. nthing.*
  6. 组织.*
  7. 东西。*
  8. com.mycompany.*
  9. 其他任何东西

由于我们还在组之间强制使用空行,所以我不能将 5、6 和 7 合二为一,而是依靠排序顺序来保持整洁。最坏的情况是我们已经在 Intellij 中定义了这个,只需要记住每次都自动排序导入。

【问题讨论】:

    标签: checkstyle


    【解决方案1】:

    回答您的问题:

    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 的正则表达式,第二个是用于导入的公共前缀字符串。

    【讨论】:

      猜你喜欢
      • 2019-08-11
      • 2015-12-17
      • 2021-12-27
      • 2013-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-09
      相关资源
      最近更新 更多