我公司的 Java 导入订单标准需要的不仅仅是我在 checktle 中看到的三个可定义组,它们是 STANDARD_JAVA_PACKAGE
, THIRD_PARTY_PACKAGE
, 和 SPECIAL_IMPORTS
.我的问题有两个部分:
导入规则大约是
由于我们还在组之间强制使用空行,因此我无法将 5、6 和 7 合二为一并依赖排序顺序来保持整洁。最坏的情况是我们已经在 Intellij 中定义了它,并且只需要记住每次都自动订购导入。
最佳答案
回答您的问题:
这应该适用于您的情况:
<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/