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
相关产品推荐
相关产品推荐

