java
build_error
ai_generated
true
The project com.example:my-app:1.0.0 has a cycle in the dependency graph. Cycle: my-app -> module-a -> module-b -> my-app
ID: java/maven-cyclic-dependency
80%Fix Rate
85%Confidence
0Evidence
2024-06-08First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| 8+ | active | — | — | — |
Root Cause
Two or more modules depend on each other directly or transitively, causing a circular dependency.
generic中文
两个或多个模块直接或间接相互依赖,导致循环依赖。
Workarounds
-
90% success Refactor the project to remove the circular dependency by extracting shared classes into a new module
Create a new module 'shared' and move common code there, then have both modules depend on 'shared'.
-
70% success Use dependency exclusions to break the cycle
<dependency><groupId>com.example</groupId><artifactId>module-a</artifactId><exclusions><exclusion><groupId>com.example</groupId><artifactId>my-app</artifactId></exclusion></exclusions></dependency>
Dead Ends
Common approaches that don't work:
-
Removing one dependency entirely without refactoring code
80% fail
The code may rely on classes from that dependency, causing compilation errors.
-
Using optional dependencies to break the cycle
90% fail
Optional dependencies are still resolved during compilation, so the cycle persists.