【问题标题】:Maven ignore signature of a dependency packageMaven忽略依赖包的签名
【发布时间】: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


    【解决方案1】:

    我认为您可以使用此 link 将第三方库(在您的情况下为 hadoop-azure)添加到您的本地 maven 存储库,然后您运行您的项目并且它应该很好。例如:

    mvn install:install-file -Dfile=C:\Projects\HadoopAzure\hadoop.jar -DgroupId=org.apache.hadoop.fs.abfs \
        -DartifactId=hadoop-azure -Dversion=2.7.1 -Dpackaging=jar
    

    【讨论】:

    • 很好奇,它对签名问题有何帮助?
    猜你喜欢
    • 2021-12-21
    • 1970-01-01
    • 1970-01-01
    • 2016-09-07
    • 1970-01-01
    • 2017-12-16
    • 2010-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多