Maven忽略依赖包的签名

问题描述 投票:0回答:1

我在hadoop项目下有一个自定义的Hadoop-azure程序包。我需要在我的项目中使用此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阴影插件忽略清单中的签名文件。但是,将在构建阴影插件的Uber Jar中忽略这些内容。这个项目的测试结构做得不好,并且是作为主项目下的另一个子项目构建的;有自己的pom文件。当我为类编写集成测试时,我总是看到Java安全签名错误。除了shade plugin选项之外,是否有其他方法可以忽略Manifest文件夹中的签名文件?

谢谢

java maven hadoop manifest signature
1个回答
0
投票

我认为您可以使用此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
© www.soinside.com 2019 - 2024. All rights reserved.