0

我有 2SVN个项目存储库说Project1& Project2Project1是使用的主要应用程序Project2。我想要实现的是,无论何时Project1使用Jenkins它构建都应该包括更新站点Project2并自动构建它并在Project1.

Project2 包含 6 个项目和一个更新站点(包括artifacts.jar, content.jar. feature/, plugins/, site.xml)。

我怎样才能做到这一点?是否eclipse P2 director可以使用?如果是,那么如何?如何自动化合并Project2更新站点的过程Project1

更新

简而言之,在哪里包含Project2更新站点Project1,以便无论何时Project1构建它都应该Project2使用更新站点自动安装?

更新站点: /pathto/repository/updatesite/

给定链接的内容:artifacts.jar, content.jar. feature/, plugins/, site.xml

我正在尝试这个命令:

D:\EclipseCpp\eclipse\eclipsec.exe -application org.eclipse.equinox.p2.director -repository http:/pathto/repository/updatesite//  -installIU featurename -destination D:\EclipseCpp\eclipse\

但它未能说明未找到功能名称。

更新 1

到目前为止,我取得的成就:

Project1->使用 Jenkins成功构建。

-> 创建了一个包含\Path_in\Project1\eclipsec.exe -application org.eclipse.equinox.p2.director -repository http:/pathto/repository/updatesite// -installIU featurename -destination \Path_in\Project1\eclipse.

该批处理文件现在正在Project2成功安装Project1

我想要实现的是再次自动化这些步骤,即一旦我完成Project1使用构建Jenkins,它应该从 Jenkins 触发上述命令(可能是命令中需要的一些修改)以包含Project2Project1. 这可能吗?

4

2 回答 2

0

您的 Jenkins 设置应该有 2 个工作。假设 Jenkins 作业 A 构建 Project1,Jenkins 作业 B 构建 Project2。

(1) 将作业 A 设置为

  • 构建项目1

(2) 将作业 B 设置为

  • 构建项目2
  • 部署 P2 工件,例如到本地目录/repo/project2/p2

(3)在Project1中,一定要在pom.xml中指定上面的P2目录为一个repository,像这样

  <repositories>
    <repository>
      <id>project2-p2repo</id>
      <url>file:/repo/project2/p2</url>
      <layout>p2</layout>
    </repository>
    [...] 
  </repositories>

(4)在Jenkins作业A中配置构建触发器:

  • 构建其他项目后选择构建
  • Projects to watch中,选择 Jenkins job B

完毕。

结果将是:

  • 构建 Project1 时,它使用 P2 存储库和 Project2 构建的结果
  • 构建 Project2 时,将使用 Project2 构建的新结果触发 Project1 的构建
于 2017-03-18T14:33:05.683 回答
0

我相信你正在使用 Maven 来构建你的项目

  1. 构建项目2

  2. 创建 p2 存储库:您可以使用maven 插件创建 p2 存储库。

  3. 将其上传到 Artifact Repository:这里我们使用Nexus作为 Artifact Repository。按照此处提到的设置 Nexus 下的所有 10 个步骤进行操作。

我创建了一个参考 pom.xml,它可以创建一个 p2 存储库并将其上传到 p2 存储库。你可以在这里看到它。

  1. 在您的项目 A 中,您可以将功能站点添加到您的目标平台,该站点将指向项目 B 的 p2 站点。您可以在此处参考 vogella 关于 Tycho 的文章。
于 2017-03-20T10:18:10.057 回答