使用 Maven 在可执行 JAR 中包含签名库

Posted

技术标签:

【中文标题】使用 Maven 在可执行 JAR 中包含签名库【英文标题】:Including Signed Libraries in Executable JAR with Maven 【发布时间】:2017-10-20 13:00:26 【问题描述】:

Maven shadeassembly 插件首先解包,然后将依赖项添加到可执行 jar 中。这可能会与 Java Cryptography Extension 产生冲突,因为像 BouncyCastle 这样的库应该在其签名版本中使用。 问题:有没有一种方法可以使用 maven 创建可执行 jar,并且无需解包即可包含库?

【问题讨论】:

【参考方案1】:

标准的类加载器不会从另一个 jar 加载类,因此是爆炸的 jar。实现添加签名 jar 的最佳方法是使用 -cp 命令,例如:

java -cp signedjar;shadepluginjar Main

【讨论】:

以上是关于使用 Maven 在可执行 JAR 中包含签名库的主要内容,如果未能解决你的问题,请参考以下文章

在可执行的 .jar 文件中包含 excel

在可执行文件中包含引用

通过 maven-assembly-plugin 打包在 jar 中包含 spring xml

如何在 maven jar 构建过程中包含外部 jar?

使用 Maven Surefire 运行依赖项 jar 中包含的 JUnit 测试

为啥 maven 不在我的 jar 中包含 JSP 文件?