关于项目报错:Error:Cannot build artifact ‘XXX:war exploded‘ because it is included into a circular dep,已解決

现象:

在启动项目的时候项目报错且启动不了:

Error:Cannot build artifact 'manage-service:war exploded' because it is included into a circular dependency (artifact 'manage-service:war exploded', artifact 'manager-service:war exploded')

如下圖所示:

解决方案:

找到项目目录中的.idea目录,进入artifacts文件目录,删除重复的两个的文件即可。

在 IntelliJ IDEA 中,当尝试构建 `war exploded` 类型的 artifact 时,如果出现 `circular dependency` 错误,通常是由于项目配置中存在循环依赖关系。循环依赖指的是两个或多个模块相互依赖,导致构建系统无法确定正确的构建顺序。 ### 循环依赖的解决方法 1. **检查并修改项目依赖关系** 在 Maven 或 Gradle 项目中,可以通过检查 `pom.xml` 或 `build.gradle` 文件来识别循环依赖。如果发现两个模块相互依赖,可以考虑重构代码,将公共部分提取到一个新的模块中,从而打破循环依赖。 2. **从 Artifacts 中移除冲突的 artifact** 打开 **File → Project Structure → Artifacts**,检查是否存在重复或冲突的 artifact。例如,`ssm:war exploded` 和 `apinb-master:war exploded` 同时存在可能导致循环依赖。删除不必要的 artifact,然后重新配置项目结构。 3. **清理和重新构建项目** 有时,构建过程中残留的文件可能导致问题。执行以下步骤: - 删除项目的 `target` 目录(Maven)或 `build` 目录(Gradle)。 - 执行 `mvn clean install` 或 `gradle clean build` 重新构建项目。 - 重新启动 IntelliJ IDEA,并重新部署项目到 Tomcat 或其他服务器。 4. **检查服务器配置** 如果使用 Tomcat 作为服务器,确保其配置正确。可以尝试在命令行中手动启动 Tomcat,以确认是否是 IDEA 的部署问题。如果 Tomcat 能够正常启动,则问题可能出在 IDEA 的部署配置上。 5. **使用 Maven 或 Gradle 插件管理依赖** Maven 和 Gradle 提供了插件来检测循环依赖。例如,Maven 可以使用 `maven-enforcer-plugin` 来检测并阻止循环依赖: ```xml <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <executions> <execution> <id>enforce-banned-dependencies</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <bannedDependencies> <includes> <include>com.example:my-artifact</include> </includes> </bannedDependencies> </rules> </configuration> </execution> </executions> </plugin> ``` 6. **重构模块结构** 如果循环依赖无法通过简单的依赖管理解决,可能需要对项目模块进行重构。可以将共享代码提取到一个独立的库中,避免模块之间的直接依赖。 ### 示例:Maven 项目中的循环依赖检测 Maven 提供了内置的命令来检测循环依赖: ```bash mvn dependency:tree ``` 该命令会显示项目的依赖树,帮助识别是否存在循环依赖。 ### 示例:Gradle 项目中的循环依赖检测 Gradle 也提供了类似的命令来查看依赖关系: ```bash gradle dependencies ``` 通过分析输出的依赖树,可以发现哪些模块之间存在循环依赖。 ### 总结 解决 `circular dependency` 错误的关键在于识别并打破依赖链。通过清理项目、重新配置 artifact、检查依赖关系以及重构模块结构,通常可以有效解决该问题。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值