Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法安装本地构建的eclipse插件,获取;读取签名内容时出错“;_Java_Eclipse_Maven_Eclipse Plugin_Tycho - Fatal编程技术网

Java 无法安装本地构建的eclipse插件,获取;读取签名内容时出错“;

Java 无法安装本地构建的eclipse插件,获取;读取签名内容时出错“;,java,eclipse,maven,eclipse-plugin,tycho,Java,Eclipse,Maven,Eclipse Plugin,Tycho,我继承了一个较大的Eclipse插件代码库,它是用Maven Tycho构建的。完整构建为插件生成一个更新站点 我已经通过运行一个测试实例并指定要加载的插件成功地测试了这个插件,但是我现在正试图从本地构建的更新站点“正常”安装这个插件。在更新站点条目中,我指定了更新站点目标文件夹中zip文件的路径。它能够显示更新站点中的功能列表(只有一个)。我检查了一下,接着说。它通过了许可证批准并开始安装,但随后失败,原因如下: 在org.eclipse.equinox.internal.p2.engine.

我继承了一个较大的Eclipse插件代码库,它是用Maven Tycho构建的。完整构建为插件生成一个更新站点

我已经通过运行一个测试实例并指定要加载的插件成功地测试了这个插件,但是我现在正试图从本地构建的更新站点“正常”安装这个插件。在更新站点条目中,我指定了更新站点目标文件夹中zip文件的路径。它能够显示更新站点中的功能列表(只有一个)。我检查了一下,接着说。它通过了许可证批准并开始安装,但随后失败,原因如下:

在org.eclipse.equinox.internal.p2.engine.phases.CheckTrust阶段发生错误。 会话上下文是:(profile=\u home\u opnfv\u eclipse\u java-neon\u eclipse,phase=org.eclipse.equinox.internal.p2.engine.phases.CheckTrust,操作数=,操作=)。 读取签名内容时出错。 打开zip文件时出错

从.metadata/.log文件中,可以看到以下不足为奇的stacktrace(摘录):

!条目org.eclipse.equinox.p2.engine 4 4 2016-02-10 18:22:49.495
!消息在org.eclipse.equinox.internal.p2.engine.phases.CheckTrust阶段发生错误。
!子条目1 org.eclipse.equinox.p2.engine 4 0 2016-02-10 18:22:49.495
!消息会话上下文是:(profile=\u home\u opnfv\u eclipse\u java-neon\u eclipse,phase=org.eclipse.equinox.internal.p2.engine.phases.CheckTrust,操作数=,操作=)。
!子条目1 org.eclipse.equinox.p2.engine 4 0 2016-02-10 18:22:49.495
!读取签名内容时出错。
!堆栈0
java.util.zip.ZipException:打开zip文件时出错
位于java.util.zip.ZipFile.open(本机方法)
位于java.util.zip.ZipFile(ZipFile.java:219)
位于java.util.zip.ZipFile(ZipFile.java:149)
位于java.util.zip.ZipFile(ZipFile.java:163)
位于org.eclipse.osgi.internal.signedcontent.SignedBundleHook.getSignedContent(SignedBundleHook.java:209)
在org.eclipse.equinox.internal.p2.engine.phases.CertificateChecker.checkCertificates(CertificateChecker.java:73)上
在寻找其他类似事件的过程中,我发现了各种似乎与此相关的问题,但没有具体的内容。我发现一些人提出了删除Eclipse发行版中所有“artifacts.xml”文件的未经证实的建议。由于我没有任何其他建议,我尝试了(先将它们保存在tar文件中),然后重新启动Eclipse,然后重新安装,但没有效果

我不知道这是在抱怨哪个zip文件。我想它不是主要的更新站点。我查看了“target/repository”中的所有jar文件,没有一个是经过签名的。我不清楚他们应该是谁。据我所知,这个应用程序的构建过程应该是生成一个有效的更新站点

我可以提供哪些其他信息来说明这一点

更新

当我在Eclipse中创建更新站点条目时,我尝试通过选择“Local”而不是“Archive”从等式中删除一个zip文件,而不是选择“target/.zip”,我选择了“target/repository”,它与zip文件具有相同的内容。不幸的是,这没有什么区别。同样的错误

更新

我不知道这是否重要,但我注意到,当Eclipse试图安装插件时,它会显示看似无害的“安装详细信息”页面,其中列出了要安装的插件,但我碰巧注意到,在这个插件列表下面是一个“大小:”标签,上面的值是“0字节”。这是否重要?如果是,这表明了什么

更新

将调试器连接到目标实例后,我发现损坏的jar是“$HOME/.p2/pool/plugins/org.eclipse.emf.mapping_2.9.0.v20160201-0859.jar”。此文件的长度不是零,但“jar”和“unzip”报告该文件已损坏。我发现另外四个“org.eclipse.emf.*”jar也有类似的问题,p2回购协议中的所有其他jar都很好

现在我知道哪些文件已损坏,我可以对此做些什么?我尝试将损坏的jar文件移动到另一个位置(并仔细记录信息),然后重新启动Eclipse并重新安装插件。它仍然会在“CheckTrust”阶段失败并出现错误,但这次它报告了丢失的jar文件的完整路径

如何修复这些文件?我必须在网上的某个地方找到它们的有效副本吗

(我已经提交了一份错误报告,以便在原始异常报告中添加损坏zip文件的完整路径。)

关于“0大小”问题:当捆绑包的“pack200”版本出现问题并且扩展“*.jar.pack.gz”捆绑包失败时,通常会发生这种情况。不确定您是在创建一个有问题的存储库,还是从另一个存储库获取该存储库? 关于“增加冗长”的问题:在

https://wiki.eclipse.org/Equinox/p2/p2.mirrorsURL
这可能会有帮助。这篇文章主要是关于“mirrorsURL”的,但在文章的最后,它给出了一些选项,您可以在.options文件中添加这些选项,以增加p2正在经历的过程的输出。这可能会提供更多信息。它提到的两个调试选项是

org.eclipse.equinox.p2.core/debug=true
org.eclipse.equinox.p2.core/artifacts/mirrors=true
从“运行配置”的“跟踪”页面上看,其他一些可能与您的问题有关:

org.eclipse.equinox.p2.engine/engine/debug=true
org.eclipse.equinox.p2.engine/certificatechecker/unsigned=true
org.eclipse.equinox.p2.engine/certificatechecker/untrusted=true

HTH

由于某种原因,我的“$HOME/.p2/pool”树中的五个jar文件不知何故被破坏了。这可能是因为我的虚拟机在几周前磁盘空间用完了。我修复了磁盘空间问题,但在这段时间内Eclipse可能无法完全写入某些内容

不幸的是,我在尝试安装插件时收到的异常消息没有提到哪个存档文件已损坏。在这个过程中,我提交了
org.eclipse.equinox.p2.engine/engine/debug=true
org.eclipse.equinox.p2.engine/certificatechecker/unsigned=true
org.eclipse.equinox.p2.engine/certificatechecker/untrusted=true