我的问题是:Eclipse Oxygen(4.7.2)无法设置我所有工作空间中的目标平台,即使它们可以(也可以)由Eclipse Neon设置。似乎每个工作区可能只有一次,之后我既不能重置相同的目标平台,也不能切换到另一个目标平台。
我猜你需要在Eclipse Oxygen中设置的首选项中有一个标记或设置,这是Neon中没有的,因为设置目标平台(并在其中两个之间切换)是非常可能的。看起来也像是一个缓存问题。
我收到的错误消息是:
An internal error occurred during:
Install download0
Install download1
Install download2
Install download3
在错误日志中:
java.lang.NullPointerException
at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.downloadArtifact(SimpleArtifactRepository.java:675)
at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.downloadArtifact(SimpleArtifactRepository.java:600)
at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.getArtifact(SimpleArtifactRepository.java:732)
at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.getArtifact(MirrorRequest.java:319)
at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.transferSingle(MirrorRequest.java:288)
at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.transfer(MirrorRequest.java:223)
at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.perform(MirrorRequest.java:153)
at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.getArtifact(SimpleArtifactRepository.java:716)
at org.eclipse.equinox.internal.p2.artifact.repository.simple.DownloadJob.run(DownloadJob.java:63)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
一个不起作用的目标平台的例子是(尽管我合理地确定它不能成为目标平台,因为它在Neon中有效):
<location includeAllPlatforms="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
<repository location="http://download.eclipse.org/eclipse/updates/4.7"/>
<unit id="org.eclipse.rcp.feature.group" version="4.7.2.v20171130-0510" />
</location>
我发现了两个类似异常的错误:Bug 506255讨论了我可能会使用的镜像更新站点? Bug 379986可能不太相关,因为它涉及检查更新功能。
我删除了捆绑池文件夹(通过偏好设置 - &gt; Oomph - &gt;捆绑池找到)但问题仍然存在,这次甚至是我第一次在全新的时候打开目标平台工作区。
我可以解决Tycho中相同的目标平台(但是 - 我也可以使用Eclipse Neon来解决这个问题)。
我找到了解决产生该错误的目标平台的方法。让我们说我有一个有25个位置的目标平台。我将一个位置移到另一个位置后尝试解析目标平台。它实际上在19左右(该数字可能是随机的,但它并未绑定到特定位置)。然后我再一次添加位置。如果我出于某些原因一次性添加它们,它就不起作用。当我到达原始目标平台时,它现在就解决了。
如何在氧气中设置目标平台?
后续行动:现在,数百个项目中的一个在Jenkins上构建时具有相同(或非常相似)的异常:
Caused by: java.lang.NullPointerException
at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.downloadArtifact(SimpleArtifactRepository.java:666)
at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.downloadArtifact(SimpleArtifactRepository.java:591)
at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.getArtifact(SimpleArtifactRepository.java:723)
at org.eclipse.tycho.repository.p2base.artifact.repository.RepositoryArtifactProvider.getArtifactFromOneMirror(RepositoryArtifactProvider.java:229)
at org.eclipse.tycho.repository.p2base.artifact.repository.RepositoryArtifactProvider.getArtifactFromAnyMirror(RepositoryArtifactProvider.java:212)
at org.eclipse.tycho.repository.p2base.artifact.repository.RepositoryArtifactProvider.access$1(RepositoryArtifactProvider.java:207)
at org.eclipse.tycho.repository.p2base.artifact.repository.RepositoryArtifactProvider$1.perform(RepositoryArtifactProvider.java:187)
at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.getArtifact(SimpleArtifactRepository.java:707)
at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.getArtifacts(SimpleArtifactRepository.java:778)
at org.eclipse.tycho.repository.p2base.artifact.repository.RepositoryArtifactProvider.getArtifactFromAnyChildRepository(RepositoryArtifactProvider.java:199)
at org.eclipse.tycho.repository.p2base.artifact.repository.RepositoryArtifactProvider.getArtifactFromAnyFormatAvailableInRepository(RepositoryArtifactProvider.java:168)
at org.eclipse.tycho.repository.p2base.artifact.repository.RepositoryArtifactProvider.getArtifactFromAnySource(RepositoryArtifactProvider.java:154)