用maven-shade-plugin 打包可运行jar,但因引用了bouncycastle 相关jar,打包出来的jar 运行后出现异常“java.lang.SecurityException: no manifest section for signature file entry”
网上google很久,才发现因bouncycastle相关的jar 原因,使用一般的maven-shad-plugin配置不可用,需修改新增如下:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>${maven.shade.plugin.version}</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <!-- because no manifest section for signature file entry --> <filters> <filter> <artifact>*:*</artifact> <excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> </excludes> </filter> </filters> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>com.csair.jar.Provider</mainClass> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <resource>META-INF/spring.handlers</resource> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <resource>META-INF/spring.schemas</resource> </transformer> </transformers> </configuration> </execution> </executions> </plugin> </plugins> </build>
原文来自:
http://www.jamesswafford.com/2012/03/11/java-lang-securityexception-no-manifest-section-for-signature-file-entry/
相关推荐
Bouncy Castle是一个开源的Java加密库,提供了广泛的加密算法、协议实现以及相关的工具。这个jar包是专门为Java开发者设计的,它弥补了Java标准加密API(如JCE)在某些功能上的不足,使得开发者可以更加灵活地处理...
maven-resources-production java.lang.NegativeArraySizeException java.lang.NegativeArraySizeException 问题解决
import org.bouncycastle.jce.provider.BouncyCastleProvider; // 注册Bouncy Castle Provider Security.addProvider(new BouncyCastleProvider()); // 创建AES Cipher Cipher cipher = Cipher.getInstance("AES/...
1) Error injecting constructor, java.lang.NoSuchMethodError: org.apache.maven.model.validation.DefaultModelValidator: method 'void ()' not found at org.jetbrains.idea.maven.server.embedder....
在Java项目中使用Bouncy Castle,通常需要将`jec-bouncycastle.jar`添加到项目的类路径中。如果是Maven项目,可以在pom.xml文件中添加对应的依赖。对于非Maven项目,可以通过下载JAR文件并将其放入项目的lib目录下。...
BouncyCastle库提供了`org.bouncycastle.jce.provider.BouncyCastleProvider`类,它是Java加密服务提供者,包含了国密算法的支持。为了使用它,需要在代码中添加以下行: ```java Security.addProvider(new ...
commons-lang3.3.1.jar、Apache Commons包中的一个,包含了一些数据类型工具类,是java.lang.*的扩展。必须使用的jar包。为JRE5.0+的更好的版本所提供 Jar文件包含的类: META-INF/MANIFEST.MFMETA-INF/LICENSE....
标题提及的"bouncycastle jar包,版本: jdk15to18-1.73",是指针对Java 1.5至1.8版本的Bouncy Castle库的1.73版,提供了两个jar文件:bcprov-ext-jdk15to18-1.73.jar和bcprov-jdk15to18-1.73.jar。 1. **Bouncy ...
在Java编程中,`java.lang.ClassNotFoundException` 是一个常见的运行时异常,通常发生在尝试通过类加载器加载指定类时,但找不到对应的字节码文件。在这个特定的问题中,`ClassNotFoundException` 引发的原因是缺少...
maven项目里面pom文件所需的tools.java文件,百分之百管用,下载好直接复制到java安装目录下即可使用
1. 导入了不匹配的包版本:当项目依赖的 jar 包版本不一致时,可能会导致 Java.lang.NoSuchMethodError 错误。 2. 开发环境和运行环境不一致:当开发环境和运行环境的配置不一致时,也可能会导致 Java.lang....
org.apache.commons.lang jar包
<!-- 微信小程序BouncyCastleProvider,BouncyCastle是一个开源的第三方算法提供... <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk16</artifactId> <version>1.46</version> </dependency>
标题中的“java.lang.NoClassDefFoundError: javax/tools/StandardJavaFile”是一个常见的Java运行时错误,它表示在类路径中找不到某个类的定义。这个错误通常发生在试图执行包含特定类的代码,但该类在运行时环境中...
java运行依赖jar包
标题中的"bcprov-jdk16-1.46.jar"是一个Java的库文件,它属于Bouncy Castle项目,提供了一套广泛使用的加密算法和安全服务。Bouncy Castle是Java平台上的一个开源加密库,提供了对多种加密标准的支持,如RSA、AES、...