场景
idea代码编写没有报错,但是编译时提示:找不到符号。
重新编译,清理缓存都没有解决
原因
查看项目的iml文件时发现org.dom4j有两个版本,导致冲突。
担心iml文件不是最新的,删除了之后,通过mvn idea:module重新生成,还是一样。
现在只能找到2个引用的出处,然后取消一个
<orderEntry type="library" name="Maven: dom4j:dom4j:1.1" level="project"/>
<orderEntry type="library" name="Maven: org.dom4j:dom4j:2.0.0" level="project"/>
<orderEntry type="module-library" exported="">
<library>
<CLASSES>
<root url="jar://D:/maven/dom4j/dom4j/1.1/dom4j-1.1.jar!/"/>
</CLASSES>
<SOURCES/>
</library>
</orderEntry>
<orderEntry type="module-library" exported="">
<library>
<SOURCES/>
<CLASSES>
<root url="jar://D:/maven/org/dom4j/dom4j/2.0.0/dom4j-2.0.0.jar!/"/>
</CLASSES>
</library>
</orderEntry>
查找依赖关系参考:https://blog.csdn.net/qq_27093465/article/details/69226949
因为已经确认冲突包了,直接搜索就可以
mvn dependency:tree -Dverbose -Dincludes=org.dom4j:dom4j
[INFO] com.test:test-server:jar:0.0.1-SNAPSHOT
[INFO] +- org.dom4j:dom4j:jar:2.0.0:compile
[INFO] \- com.test2:test-api:jar:0.0.1-SNAPSHO:compile
[INFO] \- (org.dom4j:dom4j:jar:1.1:compile - version managed from 2.9.2;)
自己的项目test-server引用了2.0.0,依赖test-api工程引用了1.1
解决方案
<dependency>
<artifactId>test-api</artifactId>
<groupId>test</groupId>
<version>0.0.1-SNAPSHOT</version>
<!-- 依赖排除 -->
<exclusions>
<exclusion>
<groupId>org.dom4j</groupId>
<artifactId>dom4j</artifactId>
</exclusion>
</exclusions>
</dependency>
|