Solución:
Significa que tiene dos o más clases en el mismo paquete con diferentes datos de firma. Por lo general, eso significa que las clases provienen de diferentes JAR, uno de los cuales está firmado y el otro no está firmado.
comprobar el árbol de dependencia de pom para mismos paquetes de diferentes versiones.
Tuve este problema con itext-2.1.7
incluido el viejo bouncycastle's bcpkix
que se incluyó en más tarde version
en otra parte.
Utilizar esta pattern
:
<dependency>
package X
<exclusions>
<exclusion>
old package Y
</exclusion>
</exclusions>
</dependency>
<dependency>
latest package Y
</dependency>
Actualización: para verificar los detalles del árbol de dependencias de package_Y puede usar mvn dependency:tree -Dverbose -Dincludes=package_Y
. Para obtener más información, consulte la documentación de maven sobre cómo resolver los problemas del árbol de dependencias. Además, Eclipse tiene un visor de árbol de dependencias bastante bueno.
Encontré esta excepción mientras ejecutaba un proyecto Scala / Spark en Eclipse (Mars) en Windows y me impidió depurar y ejecutar el proyecto en el IDE. El proyecto utilizó un archivo pom.xml de Maven. Me tomó un tiempo resolverlo, por lo que estoy publicando pasos detallados aquí para ayudar a otros:
- Vaya a la carpeta donde está el archivo pom.xml de su proyecto
- Ejecute el comando: mvn dependency: tree -Dverbose> Depends.Txt ¡Asegúrese de no tener un Depends.Txt o se sobrescribirá!
- Busque en el archivo Depends.Txt la clase sin firmar de la que se queja el IDE de Eclipse. En mi caso, fue javax.servlet.
-
Puede encontrarlo en una sección que se ve así:
+ – org.apache.hadoop: hadoop-mapreduce-client-core: jar: 2.6.0: proporcionado
+ – javax.servlet: servlet-api: jar: 2.5: proporcionado
-
El ID de grupo de Maven del que desea excluir la clase duplicada en lo anterior es: hadoop-mapreduce-client-core
-
Agregue una sección de exclusiones que enumere el groupid de la exclusión en el pom.xml después del paquete ofensivo. En mi caso, este fue el groupid javax.servlet.
-
Tenga en cuenta que no puede resolver este problema reordenando la ruta de compilación de Java, ya que algunos han publicado un problema similar.