使用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
答案 0 :(得分:2)
此错误是由没有ID的产品引起的。检查所有* .product文件是否在Product Configuration Editor的Overview选项卡上指定了ID。