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

OpenRewrite未扫描src/integration-tests/java目录,如何调整项目范围?

让OpenRewrite RemoveUnusedImports规则覆盖src下所有目录的解决方案

Maven项目配置

修改pom.xml中的Rewrite插件配置,通过<sourceDirectories>指定所有需要处理的Java源码目录,替换默认范围:

<plugin>
    <groupId>org.openrewrite.maven</groupId>
    <artifactId>rewrite-maven-plugin</artifactId>
    <version><!-- 填写你当前使用的插件版本 --></version>
    <configuration>
        <sourceDirectories>
            <sourceDirectory>src/main/java</sourceDirectory>
            <sourceDirectory>src/test/java</sourceDirectory>
            <sourceDirectory>src/integration-tests/java</sourceDirectory>
            <!-- 若有其他src下的Java子目录,继续添加即可 -->
        </sourceDirectories>
        <activeRecipes>
            <recipe>org.openrewrite.java.RemoveUnusedImports</recipe>
        </activeRecipes>
    </configuration>
</plugin>

如果想一次性覆盖src下所有Java文件,也可以直接指定根目录(Rewrite会自动过滤处理Java文件,无需担心非Java文件干扰):

<sourceDirectories>
    <sourceDirectory>src</sourceDirectory>
</sourceDirectories>

Gradle项目配置

在build.gradle中先确保定义了所有需要的源集(比如integrationTests),再让Rewrite任务应用到所有源集:

plugins {
    id 'java'
    id 'org.openrewrite.rewrite' version '<!-- 填写你当前使用的插件版本 -->'
}

rewrite {
    activeRecipe("org.openrewrite.java.RemoveUnusedImports")
}

// 定义集成测试源集(如果项目里还没定义的话)
sourceSets {
    integrationTests {
        java.srcDir file('src/integration-tests/java')
    }
}

// 让Rewrite规则作用于所有源集
tasks.withType(org.openrewrite.gradle.tasks.RewriteRun) {
    sourceSets = [sourceSets.main, sourceSets.test, sourceSets.integrationTests]
}

验证生效

执行对应的Rewrite运行命令:

  • Maven:mvn rewrite:run
  • Gradle:./gradlew rewriteRun

检查src下所有Java文件的未使用导入是否被清理,之后再运行SonarQube检测确认问题解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 02:43:12