tycho - 提供的能力 "org.eclipse.equinox.p2.iu"的名称未定义

标签 tycho

使用 Tycho 0.21,我收到一条错误消息,涉及未定义提供的功能“org.eclipse.equinox.p2.iu”的名称。我在我们的代码库中搜索了字符串“org.eclipse.equinox.p2.iu”,只在 P2 更新站点中找到了它,我禁用该站点只是为了再次收到相同的错误消息。

使用包含多个模块的打包“pom”的 POM 时会发生错误:

<modules>
  <module>some-module</module>
</module>

它早些时候使用经过大量修改的 Tycho 0.8 版本工作。我们目前正在尝试切换到 Tycho 0.21,其中的挑战之一是从基于文件系统的目标平台(Eclipse 中的“安装”)转向使用更新站点。

任何人都可以提供此消息的提示吗?

[artifact:mvn] [ERROR] Internal error: org.eclipse.core.runtime.AssertionFailedException: null argument:the name of provided capability "org.eclipse.equinox.p2.iu" is not defined -> [Help 1]
[artifact:mvn] org.apache.maven.InternalErrorException: Internal error: org.eclipse.core.runtime.AssertionFailedException: null argument:the name of provided capability "org.eclipse.equinox.p2.iu" is not defined
[artifact:mvn]  at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:168)
[artifact:mvn]  at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
[artifact:mvn]  at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
[artifact:mvn]  at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
[artifact:mvn]  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[artifact:mvn]  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[artifact:mvn]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[artifact:mvn]  at java.lang.reflect.Method.invoke(Method.java:597)
[artifact:mvn]  at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
[artifact:mvn]  at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
[artifact:mvn]  at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
[artifact:mvn]  at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
[artifact:mvn]  at org.codehaus.classworlds.Launcher.main(Launcher.java:47)
[artifact:mvn] Caused by: org.eclipse.core.runtime.AssertionFailedException: null argument:the name of provided capability "org.eclipse.equinox.p2.iu" is not defined
[artifact:mvn]  at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:85)
[artifact:mvn]  at org.eclipse.equinox.internal.p2.metadata.ProvidedCapability.<init>(ProvidedCapability.java:35)
[artifact:mvn]  at org.eclipse.equinox.p2.metadata.MetadataFactory.createProvidedCapability(MetadataFactory.java:429)
[artifact:mvn]  at org.eclipse.tycho.p2.impl.publisher.AbstractDependenciesAction.perform(AbstractDependenciesAction.java:83)
[artifact:mvn]  at org.eclipse.equinox.p2.publisher.Publisher$ArtifactProcess.run(Publisher.java:207)
[artifact:mvn]  at org.eclipse.equinox.p2.publisher.Publisher.publish(Publisher.java:237)
[artifact:mvn]  at org.eclipse.tycho.p2.impl.publisher.AbstractMetadataGenerator.publish(AbstractMetadataGenerator.java:118)
[artifact:mvn]  at org.eclipse.tycho.p2.impl.publisher.AbstractMetadataGenerator.generateMetadata(AbstractMetadataGenerator.java:58)
[artifact:mvn]  at org.eclipse.tycho.p2.impl.publisher.DefaultDependencyMetadataGenerator.generateMetadata(DefaultDependencyMetadataGenerator.java:30)
[artifact:mvn]  at org.eclipse.tycho.p2.impl.publisher.DefaultDependencyMetadataGenerator.generateMetadata(DefaultDependencyMetadataGenerator.java:1)
[artifact:mvn]  at org.eclipse.tycho.p2.resolver.P2DependencyResolver.getDependencyMetadata(P2DependencyResolver.java:143)
[artifact:mvn]  at org.eclipse.tycho.p2.resolver.P2DependencyResolver.setupProjects(P2DependencyResolver.java:126)
[artifact:mvn]  at org.eclipse.tycho.core.resolver.DefaultTychoResolver.setupProject(DefaultTychoResolver.java:87)
[artifact:mvn]  at org.eclipse.tycho.core.maven.TychoMavenLifecycleParticipant.afterProjectsRead(TychoMavenLifecycleParticipant.java:70)
[artifact:mvn]  at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:274)
[artifact:mvn]  at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
[artifact:mvn]  ... 12 more

最佳答案

此错误是由没有 ID 的产品引起的。检查所有 *.product 文件是否在产品配置编辑器的“概述”选项卡上指定了 ID。

关于tycho - 提供的能力 "org.eclipse.equinox.p2.iu"的名称未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25520467/

相关文章:

eclipse - 启动使用 Tycho 构建的 Eclipse 应用程序时出现 "Unable to acquire application service"错误

Maven-tycho 表示尽管其他依赖项有效,但缺少 Lombok 所需的 Artifact

java - 根据依赖版本设置 Maven 属性

maven - 如何使用 Tycho 在 OSGi 包中嵌入库 JAR

java - Maven + Tycho,添加 Maven 依赖

eclipse-rcp - 从本地文件夹生成 p2 存储库,以便它可以在目标平台中使用

eclipse - 如何使用 Maven Tycho 构建 Junit5 测试

eclipse - 构建带类别的离线 "composite"Eclipse 更新站点的解决方案

java - 无法安装本地构建的 eclipse 插件,获取 "Error reading signed content"