使用 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/