Ошибка теста mvn с SecurityException: недействительный дайджест файла подписи для основных атрибутов манифеста (проект scala spark)
mvn test
неудача с
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ project-name ---
[INFO]
[INFO] --- scalatest-maven-plugin:1.0:test (test) @ project-name ---
Discovery starting.
*** RUN ABORTED ***
java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
at sun.security.util.SignatureFileVerifier.processImpl(SignatureFileVerifier.java:330)
at sun.security.util.SignatureFileVerifier.process(SignatureFileVerifier.java:263)
at java.util.jar.JarVerifier.processEntry(JarVerifier.java:318)
at java.util.jar.JarVerifier.update(JarVerifier.java:230)
at java.util.jar.JarFile.initializeVerifier(JarFile.java:383)
at java.util.jar.JarFile.ensureInitialization(JarFile.java:617)
at java.util.jar.JavaUtilJarAccessImpl.ensureInitialization(JavaUtilJarAccessImpl.java:69)
at sun.misc.URLClassPath$JarLoader$2.getManifest(URLClassPath.java:991)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:451)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
Я искал много ответов в списке рассылки sof и Apache, во всех из них была проблема с плагином maven shade, и люди сталкивались во время фазы mvn package или mvn install. Но в моем случае я не использую плагин maven shade, только следующие плагины: maven-scala-plugin, scalatest-maven-plugin. И я столкнулся с этой проблемой только на "тестовой" фазе.
1 ответ
Наконец обнаружил проблему, существует зависимость от модуля, который имеет плагин тени, в этом модуле фильтрация pom следующим образом решила проблему:
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>