【发布时间】:2020-02-19 13:54:25
【问题描述】:
我在 hadoop 项目下有一个自定义构建的 Hadoop-azure 包的 jar。我需要在我的项目中使用这个 JAR。我使用以下配置将 JAR 作为 Maven 下的依赖项导入。
<dependency>
<groupId>org.apache.hadoop.fs.abfs</groupId>
<artifactId>hadoop-azure</artifactId>
<version>2.7.1</version>
</dependency>
但是,当我尝试导入 JAR 的签名版本时,我遇到了以下错误。
java.lang.SecurityException: class "org.apache.hadoop.fs.azurebfs.AzureBlobFileSystem"'s signer information does not match signer information of other classes in the same package
我发现使用 Maven shade 插件可以忽略 Manifest 中的签名文件。但是,这些将被遮蔽插件构建的 Uber Jar 忽略。该项目的测试结构做得不好,它是作为主项目下的不同子项目构建的;拥有自己的 pom 文件。当我为我打算的类编写集成测试时,我不断看到 java 安全签名错误。除了 shade 插件选项,还有其他方法可以忽略 Manifest 文件夹中的签名文件吗?
谢谢
【问题讨论】:
标签: java maven hadoop manifest signature