【问题标题】:How can I use a local directory as target platform for a Tycho build?如何使用本地目录作为 Tycho 构建的目标平台?
【发布时间】:2011-11-25 10:02:48
【问题描述】:

我想用一个目标平台构建一个 RCP 应用程序,该平台是一个包含 Maven/Tycho 的目录。
现在我遇到了一些无法解决依赖关系的麻烦。

Internal error: java.lang.RuntimeException: "No solution found because the  
problem is unsatisfiable.": ["Unable to satisfy dependency from  
de.test.prototype.main 1.0.0.qualifier to bundle org.eclipse.ui 0.0.0.",  
"Unable to satisfy dependency from de.test.prototype.main 1.0.0.qualifier  
to bundle org.eclipse.core.runtime 0.0.0.", ...

总而言之,存在几个依赖解析问题,所以我认为 Tycho 无法使用我的目标平台。
我读了http://wiki.eclipse.org/Tycho/Target_Platform 并且有以下注释:

不支持位置类型“目录”、“安装”和“功能”。”

所以我的问题是:我如何让 Tycho 使用我的目标平台,尽管它是一个目录?

【问题讨论】:

  • 我制作了一个 .target 文件并尝试通过“target-platform-configuration”和工件来使用它,但它无法解决依赖关系...只是一个在线存储库支持吗?
  • Orri,您的评论似乎是另一个问题。您应该为此提出一个新问题。

标签: maven eclipse-rcp tycho


【解决方案1】:

Tycho 需要 p2 元数据来解决构建中的依赖关系。这就是为什么不能使用仅包含捆绑包和功能的文件夹的原因。

但是,您可以使用 Features and Bundles Publisher Application 将您的文件夹转换为 p2 存储库。完成此操作后,您可以通过目标定义文件中的file: URL 将该文件夹引用为“软件站点”位置。然后第谷也可以使用它。

但是请注意,您应该首先问自己是否真的需要这样做:您的文件夹中的功能和捆绑包真的在任何 p2 存储库中都不可用吗?如果是,强烈建议不要在它们上运行 Features and Bundles Publisher(否则您可能会违反 p2 的基本假设,这可能会导致通常仅对您的用户可见的问题)。相反,您应该直接从 p2 存储库引用这些功能和捆绑包,例如通过目标文件中的“软件站点”位置。

【讨论】:

    【解决方案2】:

    从您的插件创建一个 repo 并将其上传到 http 服务器(如 apache)并将您的 tycho pom 指向 repo

    此示例适用于 mac 和 eclipse 4,但通过一些调整,您可以使其在其他平台上运行。

    首先在桌面上创建一个 src 文件夹。在此文件夹中创建 2 个文件夹: 特征 插件

    现在复制插件文件夹中的插件和功能文件夹中的功能。

    然后在某处创建一个空的目标文件夹(将此文件夹上传到您的服务器)

    对于这个示例,我在桌面上创建了两个文件夹以保持简单

    然后我这样做:

    destination folder : /Users/yves/Desktop/repo
    source folder : /Users/yves/Desktop/src
    
    Terminal app : cd /Applications/Eclipse4
    
    ./eclipse  -debug -consolelog -nosplash -verbose -application org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher -metadataRepository file:/Users/yves/Desktop/repo -artifactRepository file:/Users/yves/Desktop/repo -source /Users/yves/Desktop/src -compress -append -publishArtifacts
    

    repo 文件夹现在包含目标平台的 repo。上传它,调整 pom 并构建。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-07
      相关资源
      最近更新 更多