Maven shade jar抛出异常
我有以下例外: 线程“main”java.lang.SecurityException中的异常:无manifest 签名文件输入部分 javax/security/cert/CertificateException.class 在sun.security.util.SignatureFileVerifier.verifySection(SignatureFileVerifier.java:380)上 在sun.security.util.SignatureFile杠杆器.processImpl(SignatureFile杠杆器.java:231)上 在sun.security.util.SignatureFileForever.process(SignatureFileForever.java:176)上 位于java.util.jar.JarVerifier.processEntry(JarVerifier.java:288) 位于java.util.jar.JarVerifier.update(JarVerifier.java:199) 位于java.util.jar.JarFile.initializeVerifier(JarFile.java:323) 位于java.util.jar.JarFile.getInputStream(JarFile.java:388) 位于sun.misc.URLClassPath$JarLoader$2.getInputStream(URLClassPath.java:692) 位于sun.misc.Resource.cachedInputStream(Resource.java:61) 位于sun.misc.Resource.getByteBuffer(Resource.java:144) 位于java.net.URLClassLoader.defineClass(URLClassLoader.java:256) 在java.net.URLClassLoader.access$000(URLClassLoader.java:58) 在java.net.URLClassLoader$1.run(URLClassLoader.java:197) 位于java.security.AccessController.doPrivileged(本机方法) 位于java.net.URLClassLoader.findClass(URLClassLoader.java:190) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:306) 位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:247) 找不到主类:com.mainClass。程序将退出 我的pom:Maven shade jar抛出异常,maven,exception,maven-shade-plugin,Maven,Exception,Maven Shade Plugin,我有以下例外: 线程“main”java.lang.SecurityException中的异常:无manifest 签名文件输入部分 javax/security/cert/CertificateException.class 在sun.security.util.SignatureFileVerifier.verifySection(SignatureFileVerifier.java:380)上 在sun.security.util.SignatureFile杠杆器.processImpl(
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<filter>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.mainClass</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
org.apache.maven.plugins
maven阴影插件
1.5
包裹
阴凉处
META-INF/*.SF
META-INF/*.DSA
META-INF/*.RSA
com.main类
上面stacktrace的最后一行是
找不到主类:com.mainClass
在调用插件之前,可能没有编译类名或类中的输入错误?出现
SecurityException
,因为您的一个依赖项是已签名的jar。
由于shade插件正在重新打包此jar,因此无效。-><代码>安全异常启动时
要解决这个问题,必须在重新打包依赖项jar时取消其签名。
这可以通过简单地不使用过滤器重新打包使jar签名的文件来实现:
org.apache.maven.plugins
问题在于java版本。
我没有注意到我的新ide自动使用ibm的java,当我将jre更改为sun的java时,它工作得很好:)对不起,我认为这不是名称的问题。或者它应该以noclassdeffoundexception的形式给出异常。