Я выбираю init- скриптовый подход, поэтому мне не нужно редактировать наш build.gradle. Я скопировал скрипт с веб-сайта и назвал его unused-imports.gradle.
Я добавил раздел исключений для исключения наших сгенерированных файлов:
initscript {
repositories {
maven { url "https://plugins.gradle.org/m2" }
}
dependencies { classpath("org.openrewrite:plugin:latest.release") }
}
rootProject {
plugins.apply(org.openrewrite.gradle.RewritePlugin)
dependencies {
rewrite("org.openrewrite:rewrite-java")
}
rewrite {
activeRecipe("org.openrewrite.java.RemoveUnusedImports")
exportDatatables = true
exclusion(
"**/generated/**"
)
}
afterEvaluate {
if (repositories.isEmpty()) {
repositories {
mavenCentral()
}
}
}
}
Когда я запускаю его с помощью команды wsl ./gradlew --init-script unused-imports.gradle rewriteDryRun, кажется, все идет хорошо. Я вижу, как анализируются все наши модули и подмодули, пока примерно через полчаса я не вижу это:
Scanning sources in project :
Using active styles [org.openrewrite.java.Checkstyle]
99% EXECUTING [58m 45s]
> IDLE
> IDLE
> :rewriteDryRun
> IDLE
Через час я прервал команду, поскольку прогресса, похоже, не было.
Что может быть не так?
Дополнительная информация:
- Мне пришлось настроить свойства Gradle с этими значениями, так как сначала не хватило места в куче: org.gradle.jvmargs= -Xmx25G -XX:+UnlockDiagnosticVMOptions -XX:GCLockerRetryAllocationCount=100. (взято из другой темы StackOverflow)
- Я тоже получаю много подобных ошибок:
Required by:
project :our:module > project :another:module
Я пробовал изменить раздел репозиториев, чтобы он отражал наш build.gradle, но это не имело никакого значения:
afterEvaluate {
if (repositories.isEmpty()) {
repositories {
maven {
url = uri('https://our/artifactory/repo')
}
mavenCentral()
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... -completes