9

我搜索了很多,但我没有找到任何解决方案。

环境

*** Eclipse Java EE IDE for Web Developers. Version: Kepler Release - Build id: 20130614-0229 with m2e-wtp - Maven Integration for WTP
1.0.0.20130612-1742 
*** Windows 7 up to date
*** Java SDK 1.7.0-40
*** Maven: Embedded (3.0.4/1.4.0.20130531-2315)

问题

错误:

在 Linux 上使用(apache)maven- jar -plugin:2.4:sign ( signing )对 jar 进行签名可以正常工作!Windows上相同的maven项目导致以下错误:

[INFO] jar is unsigned. (signatures missing or not parsable)
[ERROR] jarsigner: unable to sign jar: java.util.zip.ZipException: duplicate entry: META-INF/maven/.../pom.xml

其他消息:

我从(apache)maven-jar-plugin:2.4:jar ( default-jar )发现 Linux 和 Windows 之间的不同输出

Linux-Eclipse 跳过这两个文件,因为已经添加:

...
[INFO] META-INF/maven/com.xyz/abc-client/pom.xml already added, skipping
[INFO] META-INF/maven/com.xyz/abc-client/pom.properties already added, skipping
...

之后签名工作正常!

Windows 输出没有显示这两行!!

附加信息:

  • 我不能使用(apache)maven- jarsigner -plugin,因为它会导致以下错误 - 没有解决方案:

    [ERROR] jarsigner: cannot rename file jarfile.jar to .orig`
    
  • 这个github-forum网站告诉我 Eclipse 的 m2e-wtp-plugin 导致了这个问题,我应该在命令行上使用 maven .... 这绝对是最后一个使用选项!!!

  • 为此,codehouse 上还有一个错误“MPIR-286” ,但仍未解决。
  • 干净的部分由插件完成,它与导致问题的客户端模块构建之前的配置相同。

问题:

有没有可能摆脱这个错误?我不能使用 jarsigner-plugin,因为“rename”-error 而不是 jar-plugin,因为“duplicate entry”-error ......这实际上是一个非常奇怪的情况。

4

3 回答 3

15

这是问题作者的解决方案,已移至相应部分。
致问题作者:如果您想获得声誉,请随时写一个新答案,然后ping我删除此答案。

所以我自己发现了。这是帮助我解决问题的方法。

研究

经过更多研究后,我发现了这个问题,他们表示,maven.archiver 是原因,因为它希望在将这两个文件从 m2e.mavenarchiver-plugin 复制到 jar 之后创建这两个文件。

“...... m2e.mavenarchiver 正在目标目录中创建 pom.xml 文件等,然后这些文件被 maven archiver maven 插件拉入,然后它也会创建自己的文件 - 因此是重复文件。”

因此,该主题站点上也说明了该解决方案。

解决方案

添加

 <plugin>
   <artifactId>maven-jar-plugin</artifactId>
   <configuration>
     <archive>
       <addMavenDescriptor>false</addMavenDescriptor>
     </archive>
   </configuration>
 </plugin>

到你的 pom.xml

于 2014-02-19T11:42:37.993 回答
1

在我的情况下 maven clean install解决了这个问题

使用这个 Java Decompiler 查看 jar 是否有重复的 pom.xml 和属性

于 2018-06-28T07:00:05.990 回答
0

我在下面添加了有效的插件:

<plugin>
     <artifactId>maven-jar-plugin</artifactId>
     <configuration>
     <archive>
         <addMavenDescriptor>false</addMavenDescriptor>
     </archive>
     </configuration>
</plugin>
于 2020-08-24T16:47:18.580 回答