You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为OpenRewrite的OrderImports定义导入排序样式?求rewrite.yml示例

使用org.openrewrite.java.OrderImports的rewrite.yml示例

下面是一个完整的rewrite.yml配置示例,用来自定义Java导入语句的排序规则,适配org.openrewrite.java.OrderImports插件:

type: specs.openrewrite.org/v1beta/recipe
name: com.yourorg.CustomImportOrder
displayName: 自定义Java导入排序规则
description: 按照自定义分组规则排序Java导入,并清理未使用的导入
recipeList:
  - org.openrewrite.java.OrderImports:
      # 普通导入的分组优先级(从上到下排列)
      importOrder:
        - "" # 未匹配到其他分组的导入放在此兜底分组
        - "java."
        - "javax."
        - "com.yourorg."
        - "org.springframework."
      # 将静态导入与普通导入分为独立块
      separateStaticImports: true
      # 静态导入的分组顺序(仅当separateStaticImports为true时生效)
      staticImportOrder:
        - "java."
        - "javax."
        - ""
      # 同一分组内的导入按字母顺序排序
      sortSamePackageImports: true
      # 自动移除未使用的导入
      removeUnusedImports: true

关键配置项说明

  • importOrder:定义普通导入的分组顺序,分组按列表先后顺序排列。空字符串""是兜底分组,所有未匹配到前面前缀的导入都会归入此组。
  • separateStaticImports:设为true时,静态导入会被单独提取为一个块,默认放在所有普通导入之前。
  • staticImportOrder:对应静态导入的分组规则,逻辑和importOrder完全一致。
  • sortSamePackageImports:控制同一分组内的导入是否按字母顺序排序,建议开启以保持代码整洁。
  • removeUnusedImports:搭配排序功能,自动清理代码中未被引用的导入语句。

效果示例

原混乱导入:

import com.yourorg.service.UserService;
import java.util.List;
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.springframework.web.bind.annotation.GetMapping;
import javax.annotation.PostConstruct;

应用配置后排序结果:

import static org.junit.jupiter.api.Assertions.assertEquals;

import java.util.List;
import javax.annotation.PostConstruct;
import com.yourorg.service.UserService;
import org.springframework.web.bind.annotation.GetMapping;

内容的提问来源于stack exchange,提问作者Priess

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 08:14:57