detekt: Custom ruleset Exception after recent commit
Hi, first of all thank you for making such a wonderful library!
I’ve been making custom rules for my repo, and it’s been working great but after this commit https://github.com/Affirm/detekt/commit/4ab010a5aa25ae7f338bddff88a7076abfa11cff whenever I run gradle detektCheck
with my custom rule, I would get this error (using the default detekt-sample-ruleset to demo here):
Analyzing 491 kotlin files: Exception in thread "main" java.util.concurrent.CompletionException: java.lang.NoSuchMethodError: io.gitlab.arturbosch.detekt.api.Issue.<init>(Ljava/lang/String;Lio/gitlab/arturbosch/detekt/api/Severity;Ljava/lang/String;Lio/gitlab/arturbosch/detekt/api/Debt;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:273)
at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:280)
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1592)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoSuchMethodError: io.gitlab.arturbosch.detekt.api.Issue.<init>(Ljava/lang/String;Lio/gitlab/arturbosch/detekt/api/Severity;Ljava/lang/String;Lio/gitlab/arturbosch/detekt/api/Debt;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
at io.gitlab.arturbosch.detekt.sampleruleset.TooManyFunctions.<init>(TooManyFunctions.kt:16)
at io.gitlab.arturbosch.detekt.sampleruleset.SampleProvider.instance(SampleProvider.kt:13)
at io.gitlab.arturbosch.detekt.api.RuleSetProvider$DefaultImpls.buildRuleset(RuleSetProvider.kt:28)
at io.gitlab.arturbosch.detekt.sampleruleset.SampleProvider.buildRuleset(SampleProvider.kt:10)
at io.gitlab.arturbosch.detekt.core.Detektor.analyze(Detektor.kt:48)
at io.gitlab.arturbosch.detekt.core.Detektor.access$analyze(Detektor.kt:11)
at io.gitlab.arturbosch.detekt.core.Detektor$run$1$$special$$inlined$map$lambda$1.invoke(Detektor.kt:26)
at io.gitlab.arturbosch.detekt.core.Detektor$run$1$$special$$inlined$map$lambda$1.invoke(Detektor.kt:11)
at io.gitlab.arturbosch.detekt.core.TasksKt$runAsync$1.invoke(Tasks.kt:20)
at io.gitlab.arturbosch.detekt.core.TasksKt$task$1.get(Tasks.kt:24)
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590)
... 3 more
Any thoughts/ideas why this happens are appreciated, thank you again!
About this issue
- Original URL
- State: closed
- Created 7 years ago
- Comments: 16 (14 by maintainers)
Commits related to this issue
- Provide a test case for custom rule sets - #214 — committed to detekt/detekt by arturbosch 7 years ago
- Provide a test case for custom rule sets - #214 — committed to detekt/detekt by arturbosch 7 years ago
Works like magic! Thank you so much!
I assume you haven’t added custom dependencies? If yes you have to build a fatjar.
You have to point detekt to a custom jar with the
ruleSets = "path/to/ruleset.jar"
parameter inside a profile.Edit: Ok, using a custom rule set inside the gradle plugin indeed throws an exception. WIll try to fix that tomorrow and release a new bug fix version. Thx for reporting and trying out custom rule sets! 😄