Checkstyle CustomImportOrder 超过 3 个可定义组?

标签 checkstyle

我公司的 Java 导入订单标准需要的不仅仅是我在 checktle 中看到的三个可定义组,它们是 STANDARD_JAVA_PACKAGE , THIRD_PARTY_PACKAGE , 和 SPECIAL_IMPORTS .我的问题有两个部分:

  • 有没有办法定义更多的自定义正则表达式,或者直接在 customImportOrderRules 的 VALUE 中使用正则表达式?
  • 我可以这样做吗,因为 com.our_company 应该在所有其他 com.进口。

  • 导入规则大约是
  • 静态导入
  • java.*
  • javax.*
  • com.* 除了我们公司
  • 没什么。*
  • org.*
  • pthing.*
  • com.mycompany.*
  • 其他

  • 由于我们还在组之间强制使用空行,因此我无法将 5、6 和 7 合二为一并依赖排序顺序来保持整洁。最坏的情况是我们已经在 Intellij 中定义了它,并且只需要记住每次都自动订购导入。

    最佳答案

    回答您的问题:

  • 根据 this ticket看起来仅使用 CustomImportOrder 就无法实现您需要的功能.相反,您应该使用 ImportOrder ,完整示例如下。
  • 可以使用 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 的正则表达式,第二个只是导入的通用前缀字符串。

    关于Checkstyle CustomImportOrder 超过 3 个可定义组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51326777/

    相关文章:

    java - 如何在 Eclipse 中自动为 maven 项目配置 Checkstyle

    eclipse - 检查ColdFusion 的样式?

    gradle - 如何在gradle 2.2+中的根项目中指定checkstyle config的相对路径

    java - Checkstyle 检查方法开始处的空格

    checkstyle - 检查 Checkstyle 中的最大缩进级别

    java - 让checkstyle检查javax路径注解

    java - 如何使用checkstyle、PMD、findbugs等工具检查java类的继承级别?

    java - 生成 Checkstyle 报告(带有扩展检查)

    java - 禁用特定代码行的特定 Checkstyle 规则?

    java - 如何格式化 JAXB 生成的 java 类?