4

Lars Vogel 有一个关于如何使用 tycho 构建 eclipse 插件或 rcp 应用程序的很好的教程(http://www.vogella.com/articles/EclipseTycho/article.html)。这很好用,但有两件事我不喜欢。它建立在某个地方且不受我控制的存储库上

  <repositories>
     <repository>
       <id>juno</id>
       <layout>p2</layout>
       <url>http://download.eclipse.org/releases/juno</url>
     </repository>
  </repositories>

并且它没有显示工件如何被另一个构建使用。如果可能的话,我想针对应该托管目标平台的nexus存储库进行构建,并且应该上传我的构建的部署,以便另一个构建可以将其引用为他的目标平台。

我已经看到有一些用于 nexus 的 p2 插件以及可用于导航到工件的 nexus-unzip-plugin ( https://bugs.eclipse.org/bugs/show_bug.cgi?id=393309 )我没有足够的知识来了解如何将这些东西结合在一起,以便能够针对 nexus 存储库构建 eclipse 插件或 rcp 应用程序。有人可以告诉我这样做的方法吗?

4

2 回答 2

2

您不需要 nexus-p2-plugin。如果您将 p2 存储库作为 zip 文件部署到 maven 存储库,您应该能够使用解压缩插件。有关配置它的说明,请参阅 wiki 页面 - http://wiki.eclipse.org/Tycho/Nexus_Unzip_Plugin。我在这里提取了一些步骤;

  1. 克隆存储库(假设安装了 git)

    git clone git://git.eclipse.org/gitroot/tycho/org.eclipse.tycho.nexus.git

  2. 构建插件(假设安装了 maven)

    mvn 干净安装

-- 参见 wiki 页面中的“部署插件”

  1. 停止您的 Nexus 安装

  2. 解压 org.eclipse.tycho.nexus.git/target/unzip-repository-plugin--bundle.jar 到你的 sonatype-work/nexus/plugin-repository/

  3. 开始您的 Nexus 安装

  4. 请参阅 wiki 页面中的“配置解压缩存储库”

  5. 如果您的主存储库是公共的,并且您创建了一个名为 public.unzip 的虚拟解压缩存储库,则部署的 p2 存储库 zip 可在例如

    http://<NEXUS_HOST>/nexus/content/repositories/public/org/example/demo/org.example.demo.repository/0.1.0/org.example.demo.repository-0.1.0.zip
    

应该可以作为;

    http://<NEXUS_HOST>/nexus/content/repositories/public.unzip/org/example/demo/org.example.demo.repository/0.1.0/org.example.demo.repository-0.1.0.zip-unzip

您应该能够将该 URL 用作构建中的 p2 存储库 URL。

于 2012-11-23T10:00:27.530 回答
0

为了建立对抗 Nexus 并拥有其他人,您必须:

  1. 将 Nexus P2 插件安装到您的实例中,并为您打算使用的存储库打开工件的发布。
  2. 将 nexus 作为 maven 存储库添加到 POM 文件中的 maven 存储库中,这样您就可以使用 maven deploy 上传插件。
  3. 添加与 am eclipse P2 存储库相同的连接,以便您的 tycho 构建可以下载您的插件
  4. 构建您的工件(Maven 安装)
  5. 将您的工件部署到 nexus (maven deploy)
  6. 提供那些想要通过 tycho 重用您的 tycho 服务器地址的人。

笔记:

  • Tycho 构建是 Eclipse 构建,Eclipse 构建与 P2 存储库一起使用,远程 maven 存储库不受支持,因为 Eclipse根据依赖项要求从存储库中选择最佳版本。这将导致 maven repo 的流量丢失并且速度太慢。
  • Nexus P2 插件公开的唯一工件是插件(也称为 OSGI 包)。Eclipse 有其他与构建中重用相关的项目,例如特性和产品。因此,如果有人想重用这些项目,您必须在其他地方为他们托管由 tycho 构建生成的 P2 存储库。
  • 如果您反复调用“部署”,如果您正在构建 SNAPSHOT,则每个工件都会有一个新的次要版本号。Eclipse(以及因此 Tycho)不知道快照的概念,而是会部署一个带有时间戳的版本。这可能会导致您的联系被填满。
于 2012-11-23T04:14:54.403 回答