2

我的问题是: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>

我发现了两个错误,但有一个类似的例外:错误 506255谈论我可能使用的镜像更新站点?错误 379986可能并不真正相关,因为它与检查更新功能有关。

我删除了捆绑池文件夹(通过Preferences -> Oomph -> Bundle Pools找到)但问题仍然存在,这一次甚至是我第一次在全新的工作区中打开目标平台时。

可以在 Tycho 中解析相同的目标平台(但我也可以使用 Eclipse Neon 来解决)。

我找到了一种方法来解决产生该错误的目标平台。假设我有一个包含 25 个位置的目标平台。我一个接一个地删除一个位置并尝试解析目标平台。实际上在 19 左右(这个数字可能是随机的,但它不绑定到特定位置)。然后我再一一添加位置。如果由于某些原因我一次将它们全部添加,它将不起作用。当我到达原始目标平台时,它现在可以解决。

如何在 Oxygen 中设置目标平台?

跟进:现在一小时数百个项目在 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)
4

0 回答 0