我们的项目采用的是maven来管理,jar一般都不会出现依赖。但是有时候添加打入本地仓库的包的时候可能会出现重复的类,这一次就是两个不同的包里面出现包名类名完全一样的类了,所以导致出现这样错误class "org.apache.poi.util.PackageHelper"'s signer information does not match 。
解决方法:1.一般是通过排查Maven libraries是否有重复的jar包,有则exclusion。
2.查看是否有多个版本的问题
这两个排查后,仍然出现同样的问题,非常奇怪,所以就想排查是否不同包下有同样包名和类名,而后想自己写代码去实现,但是时间有限,思路没想通,所以一直未做,后来某一天查了下maven插件,发现有可以检测不同包下同名的类的问题的插件:maven-duplicate-finder-plugin。
这是我参考的文章:http://myexception.org/industry/309676/
第一个在pom.xml中加入
- <plugin>
- <groupId>com.ning.maven.plugins</groupId>
- <artifactId>maven-duplicate-finder-plugin</artifactId>
- <version>1.0.0</version>
- <configuration>
- <failBuildInCaseOfConflict>true</failBuildInCaseOfConflict>
- </configuration>
- <executions>
- <execution>
- <phase>verify</phase>
- <goals>
- <goal>check</goal>
- </goals>
- </execution>
- </executions>
- </plugin>