2013-04-26 142 views
0

我正在利用Eclipse Tycho构建具有GMF依赖关系的RCP应用程序。Eclipse Tycho无法解析正确的依赖关系

我收到以下错误 -

[ERROR] Internal error: java.lang.RuntimeException: Could not download artifacts from any repository 
[ERROR] osgi.bundle,org.eclipse.gmf.runtime.emf.core,1.4.1.v20120514-1615 
[ERROR] osgi.bundle,org.eclipse.gmf.runtime.emf.commands.core,1.4.0.v20120514-1615 
[ERROR] osgi.bundle,org.eclipse.gmf.runtime.emf.ui.properties,1.5.0.v20120514-1615 
[ERROR] osgi.bundle,org.eclipse.gmf.runtime.diagram.ui,1.6.0.v20120514-1615 
[ERROR] osgi.bundle,org.eclipse.gmf.runtime.diagram.ui.properties,1.4.2.v20120514-1615 
[ERROR] osgi.bundle,org.eclipse.gmf.runtime.diagram.ui.providers,1.5.0.v20120514-1615 
[ERROR] osgi.bundle,org.eclipse.gmf.runtime.diagram.ui.providers.ide,1.2.0.v20120514-1615 
[ERROR] osgi.bundle,org.eclipse.gmf.runtime.diagram.ui.render,1.6.0.v20120514-1615 
[ERROR] osgi.bundle,org.eclipse.gmf.runtime.diagram.ui.resources.editor,1.4.1.v20120514-1615 
[ERROR] osgi.bundle,org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide,1.2.1.v20120514-1615 

我specifing在MANIFEST.MF以下依赖 -

org.eclipse.gmf.runtime.emf.core;bundle-version="1.4.1", 
org.eclipse.gmf.runtime.emf.commands.core;bundle-version="1.4.0", 
org.eclipse.gmf.runtime.emf.ui.properties;bundle-version="1.5.0", 
org.eclipse.gmf.runtime.diagram.ui;bundle-version="1.6.0", 
org.eclipse.gmf.runtime.diagram.ui.properties;bundle-version="1.4.2", 
org.eclipse.gmf.runtime.diagram.ui.providers;bundle-version="1.5.0", 
org.eclipse.gmf.runtime.diagram.ui.providers.ide;bundle-version="1.2.0", 
org.eclipse.gmf.runtime.diagram.ui.render;bundle-version="1.6.0", 
org.eclipse.gmf.runtime.lite.svg;bundle-version="1.0.0", 
org.eclipse.gmf.runtime.diagram.ui.resources.editor;bundle-version="1.4.1", 
org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide;bundle-version="1.2.1", 

我所提供的存储库的位置对转基因食品作为捆绑 -

<repository> 
    <id>gmf-runtime</id> 
    <url>http://download.eclipse.org/modeling/gmp/gmf-runtime/updates/releases</url> 
    <layout>p2</layout> 
</repository> 

P2存储库具有以上所有JAR。唯一的区别是由于某种原因,Tycho正在寻找.v20120514-1615限定词。但是,P2存储库具有.201302191707限定符。不知道为什么Tycho正在寻找特定的限定符,而不是解决到最新版本。

+0

似乎.v20120514-1615版本也在您的目标平台中。您配置的某个其他p2存储库似乎包含gmf可安装单元(请参阅content.jar/content.xml),但不包含相应的工件。 – oberlies 2013-04-26 11:18:23

+0

@oberlies:想知道是否有任何方法可以追踪具有该可安装单元的P2回购? maven/tycho调试标志也许? – Pushkar 2013-04-27 16:38:44

+1

'-Dtycho.debug.resolver = true'打印出[目标平台](http://wiki.eclipse.org/Tycho/Target_Platform#Effective_content_of_the_target_platform)中的所有IU,但是AFAIK并未说明哪个p2存储库是内容来自。尽管为此打开一个[增强请求](https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Tycho)。 – oberlies 2013-04-29 08:39:08

回答

2

看来原来的P2回购已经损坏。问题是,即使插件没有被引用,Tycho也会尝试索引整个P2回购。为了解决这个问题是什么做的是 -

  1. 打开。产品文件,并从出口产品构件出口产品
  2. 复制“库”文件夹,并将其放置在共享位置
  3. 在Maven的标签如果是外部存储库,pom.xml会提供此存储库的位置。未来的所有Tycho版本都将使用此版本库

这样回购规模很小,所有构建问题都得到解决。

+0

你的意思是“即使没有引用_.jars_,Tycho试图索引整个P2回购”? – 2013-05-29 08:56:19

+0

@PaulVerest:不幸的是。但索引本质上意味着它会检查P2回购中的content.jar文件,并查看是否可以解决所有问题。只要P2回购已正确设置,一切正常。我发现的最好方式是在我们自己的服务器上反映回购(可能有更好的方法)。 – Pushkar 2013-05-29 09:32:06